C++ Visual Studio 2012中跟踪LNK1112错误
我有一个项目,我已经编译为x64项目相当长一段时间了,但由于各种原因,我现在不得不编译为x86项目 我遇到的问题是,每次编译项目时,我现在都会得到一个LNK1112错误C++ Visual Studio 2012中跟踪LNK1112错误,c++,visual-studio-2012,linker-errors,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>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依赖项,只是为了消除我错过任何第三方库的32位版本的可能性。剩下的就是默认情况下添加到项目中的Windows库
我想知道是否有任何方法可以具体跟踪LNK1112错误涉及的文件?显然涉及到了CameraCapture.obj,但是这个文件应该是x86并且没有任何问题。关于如何找到我遇到的问题,有人有什么好的建议吗?处理此类问题的一些建议:
- 打开链接器启动横幅,以便可以确切地看到它正在使用的输入(或查看项目属性中的命令行)
- 确保项目是干净的,这样就不会有任何旧的二进制文件
- 确保在项目设置中设置了正确的平台类型。我甚至会在.vcxproj文件中搜索x64和x86,以确保捕获所有内容
- 使用
检查进入链接器的.obj和.lib文件的机器类型dumpbin/HEADERS
- 打开链接器启动横幅,以便可以确切地看到它正在使用的输入(或查看项目属性中的命令行)
- 确保项目是干净的,这样就不会有任何旧的二进制文件
- 确保在项目设置中设置了正确的平台类型。我甚至会在.vcxproj文件中搜索x64和x86,以确保捕获所有内容
- 使用
检查进入链接器的.obj和.lib文件的机器类型dumpbin/HEADERS
- 处理此类问题的一些技巧: