首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >致命错误LNK1112:模块计算机类型'x64‘与目标计算机类型'X86’冲突

致命错误LNK1112:模块计算机类型'x64‘与目标计算机类型'X86’冲突
EN

Stack Overflow用户
提问于 2010-08-25 15:36:09
回答 24查看 375.3K关注 0票数 202

我正在使用CUDA (VC++,Visual studio 2008sp1)来调试一个有限元程序。由于cuda的不足,该程序只能在Win32平台上运行。我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,我得到错误消息"fatal error LNK1112: module machine type 'x64‘conflicts with target machine type 'X86'“。

我曾尝试将该平台转换为x64,但它不起作用。请告诉我:什么是模块机类型,什么是目标机类型?我怎样才能克服它?

EN

回答 24

Stack Overflow用户

发布于 2012-01-13 16:28:23

当我试图将X64构建添加到从VS2003转换而来的项目中时,我在VS2008中遇到了同样的问题。

我查看了在谷歌上搜索这个错误时找到的所有东西(目标机器,VC++Directories,DUMPBIN....)一切看起来都很好。

最后,我创建了一个新的测试项目,并做了相同的更改,它似乎起作用了。

在vcproj文件之间进行比较发现了问题...

我转换后的项目在“链接器”->“命令行”下将/MACHINE:i386设置为附加选项。因此,设置了两个/MACHINE选项( x64和i386),另一个选项优先。

移除它并在Linker->Advanced->Target Machine下正确设置它会使问题消失。

票数 54
EN

Stack Overflow用户

发布于 2017-03-14 04:20:40

所有的项目设置似乎都很完美,但我还是得到了错误。查看.vcxproj文件并搜索"x86“发现了问题:

代码语言:javascript
复制
<Lib>
  <AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
</Lib>

对所有匹配项的快速搜索/替换(十个单独的文件设置)修复了该问题。

票数 26
EN

Stack Overflow用户

发布于 2010-08-25 16:01:55

当您链接到x64 (这是目标机器类型)时,您可能有一个针对x86 (这是模块机类型)的.OBJ或.LIB文件。

对.OBJ文件使用DUMPBIN /HEADERS,并检查文件头值块中的machine条目。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3563756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档