在 MSVC 2010 中编译 64 位应用程序

Posted

技术标签:

【中文标题】在 MSVC 2010 中编译 64 位应用程序【英文标题】:Compile 64 bit application in MSVC 2010 【发布时间】:2012-10-06 18:54:17 【问题描述】:

我们需要在支持 64 位的 MSVC++ 2010 中编译我们的库。 看了this question上的回答,我还是不明白为什么要把平台工具集从“v100”改成“Windows7.1SDK”。

是否只需要 MSVC Express 或完整的 MSVC 版本? 它有什么变化?如果您不更改工具集,会有什么风险?

我的意思是,我可以使用默认 v100 工具集成功生成 64 位二进制文​​件,这有什么问题?

【问题讨论】:

VS 2010 完整版中,如果没有 sdk 就没有必要。还有一个VS2010 x64 redistributable 供您的客户使用。 【参考方案1】:

绕过 Express 版本的限制是一种技巧,在其许可限制的南端。当您拥有付费版时,您只需添加 x64 配置即可获得 64 位版本的应用程序。使用 Build + Configuration manager,右上角的组合框标记为“Active Solution Platform”。从该组合框中选择“新建”。在弹出窗口中选择“x64”。完成。

如果“x64”未出现,则重新运行安装程序并选择安装 64 位编译器的选项。

【讨论】:

【参考方案2】:

该设置对于 Visual Studio 2010 Express 是必需的。这不附带 64 位编译器,因此您必须告诉它使用 SDK 编译器。付费版本包含一个 64 位编译器。

【讨论】:

以上是关于在 MSVC 2010 中编译 64 位应用程序的主要内容,如果未能解决你的问题,请参考以下文章

windows平台vs2010编译64位libiconv与libxml2

在编译器之间匹配 va_list 类型

VS2010:以 64 位编译 C++ 项目

MSVC:以64位代码读取特定的64位或32位寄存器(例如R10)?

如何验证编译时在 msvc 2010 c++ 项目中是不是正确设置了编译器选项?

__int64 在 32 位机器上?