我使用CUDA (vc++, Visual studio 2008sp1)来调试FEM程序。由于cuda的不足,该程序只能在Win32平台上运行。我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,我得到了错误消息
致命错误LNK1112:模块机类型“x64”与目标机类型“X86”冲突。
我曾尝试将该平台转换为x64,但没有成功。请告诉我:什么是“模块机类型”,什么是“目标机类型”?我怎样才能克服它呢?
我使用CUDA (vc++, Visual studio 2008sp1)来调试FEM程序。由于cuda的不足,该程序只能在Win32平台上运行。我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,我得到了错误消息
致命错误LNK1112:模块机类型“x64”与目标机类型“X86”冲突。
我曾尝试将该平台转换为x64,但没有成功。请告诉我:什么是“模块机类型”,什么是“目标机类型”?我怎样才能克服它呢?
当前回答
如果您的解决方案有库项目,请检查属性->图书管理员->通用中的目标机器属性
其他回答
我的目标是一个x64 Windows 10文本模式的DOSBox应用程序在C语言。 使用“Visual Studio 2019 Community”通过DOS提示符“nmake -f makefile”进行编译。 错误是类似的,但在相反的方面:
fatal error LNK1112: module machine type 'x32' conflicts with target machine type 'X64'
在另一台计算机上用vc++ 2010编译是可以的。但是“Visual Studio 2019社区”在这台计算机上失败了。所以我的设置是正确的,以上所有答案都不工作。
我想和大家分享的解决方案是这样的make.bat:
call "c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
nmake -f makefile
你会发现还有很多其他的vcvarxxxx .bat,只有这一个词。
如果您的解决方案有库项目,请检查属性->图书管理员->通用中的目标机器属性
我正在使用CMake,然后添加了一个win32配置。属性页显示x86,但实际上在文本编辑器中打开vcxproj文件时,它是x64!手动切换到x86解决了这个问题。
我在构建QT时遇到了这个问题,我在某处读到的说明建议我使用VS命令提示符配置nmake。
我选择了x64命令提示符并轻松地执行了配置。当我尝试nmake时,它给出了这个错误。
我想有些组件是为32位系统预建的。这个错误甚至报告了哪些模块是为x86构建的。
我使用32位默认的VS命令提示符,它工作。
除了Jhonson的列表,还可以查看图书馆的文件夹
在visual studio中,从主菜单中选择Tools > Options。选择项目和解决方案> vc++目录。从平台下拉菜单中选择x64。
$(VCInstallDir)lib\AMD64;
$(VCInstallDir)atlmfc\lib\amd64;
$(WindowsSdkDir)lib\x64;