use*_*382 171 visual-c++-2008 visual-c++
我正在使用CUDA(VC++,Visual studio 2008sp1)来调试FEM程序.由于cuda的不足,该程序只能在Win32平台上运行.我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,我收到错误消息"致命错误LNK1112:模块机器类型'x64'与目标机器类型'X86'冲突".
我试图将平台转换为x64,但它没有用.请告诉我:什么是"模块机器类型"什么是"目标机器类型"?我怎么能克服它?
C J*_*son 246
我写了一篇关于此的博客文章,因为我遇到了这个令人抓狂的问题,最后我的系统又恢复了正常运行状态.
这些是要检查的事项,按此顺序:
在链接器设置中检查属性选项:属性>配置属性>链接器>高级>目标计算机.如果您的目标是64位版本,请选择MachineX64;如果您正在构建32位版本,请选择MachineX86.
从visual studio的主菜单中选择Build> Configuration Manager.确保您的项目具有指定的正确平台.可以将IDE设置为构建x64,但解决方案中的单个项目可以设置为目标win32.所以,是的,视觉工作室留下了很多绳索让自己挂起,但这就是生活.
检查您的库文件,他们确实是平台类型的目标.这可以通过使用visual studio VC\bin目录中的dumpbin.exe来使用.使用-headers选项转储所有函数.查找每个功能的机器条目.它应该包括x64,如果它是64位构建.
在visual studio中,从主菜单中选择工具>选项.选择项目和解决方案> VC++目录.从Platform下拉列表中选择x64.确保第一个条目是:$(VCInstallDir)\ bin\x86_amd64后跟$(VCInstallDir)\ bin.
一旦我做了第4步,一切都为我工作了.问题是我在所有项目中都遇到了这个问题,我想要编译成64位目标.
ser*_*gtk 135
除了C Johnson列表,我还会添加以下内容:
签入Visual Studio:
项目属性 - >配置属性 - >链接器 - >命令行.
"附加选项"不应包含 /machine:X86
我有这样的密钥,由CMake输出生成:CMake生成x86项目,然后我Configuration Manager在Visual Studio 2010中添加了x64平台- 除了链接器命令行之外,一切都是为新平台创建的,/machine:X86单独指定.
小智 53
当我尝试将X64构建添加到从VS2003转换的项目时,我在VS2008中遇到了同样的问题.
我查看了在Google上搜索此错误时发现的所有内容(目标计算机,VC++目录,DUMPBIN ....),一切都很好.
最后,我创建了一个新的测试项目,并做了相同的更改,似乎工作.
在vcproj文件之间进行差异显示问题....
我转换后的项目将/ MACHINE:i386设置为Linker-> Command Line下的附加选项集.因此,有两个/ MACHINE选项设置(x64和i386),另外一个选择优先.
在Linker-> Advanced-> Target Machine下删除并正确设置,问题就消失了.
lam*_*345 23
所有项目设置似乎都很完美,但我仍然遇到错误.查看.vcxproj文件并搜索"x86"显示问题:
<Lib>
<AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
</Lib>
Run Code Online (Sandbox Code Playgroud)
快速搜索/替换所有出现(十个单独的文件设置)修复了问题.
hab*_*hab 13
由于问题是由于编译和目标机器规格(x86和x64)的不同,请按照以下步骤操作:
它解决了我的问题.
Pat*_*ick 11
当您链接x86(这是目标机器类型)时,您可能有一个.OBJ或.LIB文件,其目标是x64(即模块机器类型).
在.OBJ文件上使用DUMPBIN/HEADERS并检查FILE HEADER VALUES块中的机器条目.
在Visual Studio 2012 +/-中,"Configuration Properties".Linker."命令行"的属性页包含一个标有"其他选项"的框.如果要构建x64,请确保该框不包含/ MACHINE: I386.我的项目确实存在并产生了错误.
| 归档时间: |
|
| 查看次数: |
301801 次 |
| 最近记录: |