我有一个Visual Studio项目。这很简单,而且很有效。但是,我们正在将代码移植到64位。我有这个简单的项目编译,但无法链接:
fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
这告诉我它试图链接错误版本的库。它应该链接64位库,但它正在尝试链接32位库。这显然是错误的。
我的问题是我无法弄清楚我的项目决定链接该库的位置。我看了看:
#pragma comment(lib, )
的头文件,但我找不到任何用途。我还能在哪儿看?有没有办法让Visual Studio告诉我它是如何决定在不同的库中链接的?
不确定它是否相关,但这是一个使用CppUnit的小型单元测试项目。当它应该链接cppunit-vc100-MTd.lib
cppunit-vc100-x64-MTd.lib
答案 0 :(得分:1)
在项目属性页面的“链接器”下,将“项目链接进度报告”设置为显示要命中的库所需的内容。 / VERBOSE或/ VERBOSE:lib可能会做你想要的。
使用/ VERBOSE:lib
在输出窗口中显示的示例输出1> Searching libraries
1> Searching D:\winsdk\lib\kernel32.lib:
1> Searching D:\winsdk\lib\user32.lib:
1> Searching D:\winsdk\lib\gdi32.lib:
1> Searching D:\winsdk\lib\winspool.lib:
1> Searching D:\winsdk\lib\comdlg32.lib:
1> Searching D:\winsdk\lib\advapi32.lib:
1> Searching D:\winsdk\lib\shell32.lib:
1> Searching D:\winsdk\lib\ole32.lib:
1> Searching D:\winsdk\lib\oleaut32.lib:
1> Searching D:\winsdk\lib\uuid.lib:
1> Searching D:\winsdk\lib\odbc32.lib:
1> Searching D:\winsdk\lib\odbccp32.lib:
等..
此外,源树中可能有一个头文件通过
传入文件#pragma comment (lib, "cppunit-vc100-MTd.lib")
但这应该很容易通过“查找文件”搜索“包含路径”进行搜索,这是“在文件中查找”配置中的一个预设选项。