我有一个项目,我一直在编译为x64项目很长一段时间,但由于各种原因,我现在必须将其编译为x86项目。
我遇到的问题是,每次编译项目时,我都会收到LNK1112错误。
1>Link:
1>
1> Starting pass 1
1>Release\CameraCapture.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
1>
1>Build FAILED.
文件Release \ CameraCapture.obj是从.cpp文件编译的.cpp文件是我项目的一部分。
我已经删除了项目中的每个额外的.lib依赖项,试图消除我错过任何第三方库的32位版本的可能性。剩下的就是默认情况下添加到项目中的Windows库。
我想知道有没有办法专门跟踪哪些文件涉及LNK1112错误?显然涉及CameraCapture.obj,但这个文件应该是x86而没有任何问题。有没有人有任何关于如何找到我遇到的问题的好建议?
答案 0 :(得分:1)
处理此类问题的一些提示:
打开链接器启动横幅,以便您可以准确查看它正在使用的输入(或查看项目属性中的命令行。
确保项目干净,因此周围没有任何旧的二进制文件。
确保在项目设置中设置了正确的平台类型。我甚至可以自己在.vcxproj文件中搜索x64和x86,以确保抓住了所有内容。
使用dumpbin /HEADERS
检查进入链接器的.obj和.lib文件的机器类型。