在Visual Studio 2012中跟踪LNK1112错误

时间:2012-12-20 20:37:55

标签: c++ visual-studio-2012 linker-errors

我有一个项目,我一直在编译为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而没有任何问题。有没有人有任何关于如何找到我遇到的问题的好建议?

1 个答案:

答案 0 :(得分:1)

处理此类问题的一些提示:

  • 打开链接器启动横幅,以便您可以准确查看它正在使用的输入(或查看项目属性中的命令行。

  • 确保项目干净,因此周围没有任何旧的二进制文件。

  • 确保在项目设置中设置了正确的平台类型。我甚至可以自己在.vcxproj文件中搜索x64和x86,以确保抓住了所有内容。

  • 使用dumpbin /HEADERS检查进入链接器的.obj和.lib文件的机器类型。