我正在使用 CUDA(VC++、Visual studio 2008sp1)来调试 FEM 程序。由于cuda的不足,该程序只能运行在Win32平台上。我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,出现错误消息
致命错误 LNK1112:模块机器类型“x64”与目标机器类型“X86”冲突。
我尝试过将平台转换为 x64,但没有成功。请告诉我:什么是“模块机器类型”,什么是“目标机器类型”?我怎样才能克服它?
我写了一个blog https://digitalhouseblog.wordpress.com/2010/12/06/solving-link-error-1112/当我遇到这个令人抓狂的问题时,我终于将我的系统拉回到工作状态。
这些是要检查的内容,按以下顺序:
检查链接器设置中的属性选项:属性 > 配置属性 > 链接器 > 高级 > 目标计算机。如果您的目标是 64 位构建,请选择 MachineX64;如果您要进行 32 位构建,请选择 MachineX86。
从 Visual Studio 的主菜单中选择“构建”>“配置管理器”。确保您的项目指定了正确的平台。 IDE 可以设置为构建 x64,但解决方案中的单个项目可以设置为目标 win32。所以,是的,视觉工作室给自己留下了很多绳子来吊死自己,但这就是生活。
检查您的库文件是否确实属于目标平台类型。可以通过使用 Visual Studio VC\bin 目录中的 dumpbin.exe 来使用它。使用 -headers 选项转储所有函数。查找每个功能的机器条目。如果它是 64 位版本,它应该包含 x64。
在 Visual Studio 中,从主菜单中选择“工具”>“选项”。选择项目和解决方案 > VC++ 目录。从平台下拉列表中选择 x64。确保第一个条目是:$(VCInstallDir)\bin\x86_amd64其次是$(VCInstallDir)\bin.
一旦我完成了第四步,一切就对我来说再次起作用了。问题是我在所有想要编译 64 位目标的项目中都遇到了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)