1

我有一个项目,我作为 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 文件编译而来的。

我已经删除了项目中所有额外的 .lib 依赖项,只是为了消除我错过获取任何 3rd 方库的 32 位版本的任何可能性。剩下的就是默认添加到项目中的 Windows 库。

我想知道有什么方法可以具体跟踪 LNK1112 错误涉及哪些文件?显然涉及到CameraCapture.obj,但是这个文件应该是x86的,没有任何问题。有没有人对如何找到我遇到的问题有什么好的建议?

4

1 回答 1

1

处理此类问题的一些技巧:

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

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

  • 确保在项目设置中设置了正确的平台类型。我什至会在 .vcxproj 文件本身中搜索 x64 和 x86,以确保您掌握了所有内容。

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

于 2012-12-20T20:54:06.097 回答