如何从运行VS2008 Pro的x86平台编译为x64二进制文件?

时间:2008-10-04 16:35:53

标签: build x86 64-bit executable binary-compatibility

我正在尝试为x64平台编译我的应用程序(使用第三方库)。但是,从我的VS2008 Pro中从Build Configuration Manager中选择x64似乎不起作用。二进制文件确实已创建,但我的客户端无法让它在x64上运行。

我想知道第三方DLL是否可能是原因。有人对此有任何想法吗?

5 个答案:

答案 0 :(得分:3)

你有第三方库的x64版本吗?如果没有,你就不走运了。进程必须完全是x86或x64,不能混合和匹配库。如果库是DLL,那么您仍然需要x64版本的导出库。

在VS中选择x64配置的方式不起作用?

已更新:如果您的应用是.NET并且架构中性,那么它将在64位操作系统上以64位加载。但是,如果它依赖于32位DLL,那么这将在运行时失败。您可以使用corflags实用程序强制您的exe始终加载32位。

答案 1 :(得分:1)

Rob Walker说。您可以在x64计算机上使用SysInternals的“depends”程序找到更多信息。

答案 2 :(得分:1)

管理以查明问题的根源。它是源代码混淆工具(Intellilock 1.1.0.4)中的设置(加密IL代码)之一,它使二进制文件无法在x64环境中运行。

禁用此设置可解决问题。

答案 3 :(得分:0)

“从我的VS2008 Pro中从Build Configuration Manager中选择x64似乎不起作用” 我不确定为什么你会得到二进制文件,但要记住默认情况下没有安装x64工具。返回并重新运行VC2008安装程序,执行自定义安装,并在树的VC ++位下,确保选中64位编译器的复选框。如果不是,请检查并运行安装。然后试试你的构建。

您确实需要第三方dll的64位版本,并且您需要将所有包含和库路径正确并且输出文件夹正确,但安装工具是第一步。

答案 4 :(得分:0)

我的应用程序没有安装程序。我将其作为“便携式应用程序”创建,并以.NET2.0作为先决条件。

我已向供应商发布了相同的请求。如果他们有x64位,仍在等待他们恢复。

与此同时,我正在购买x64 Vista的副本以亲自测试它。我不能牺牲我的用户来为我测试这个。一旦我有新的更新,我会保留这个帖子。

感谢。