如何确定项目在Visual Studio中链接特定库的位置?

时间:2012-11-08 01:50:28

标签: c++ visual-studio-2010 visual-studio visual-c++

我有一个Visual Studio项目。这很简单,而且很有效。但是,我们正在将代码移植到64位。我有这个简单的项目编译,但无法链接:

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

这告诉我它试图链接错误版本的库。它应该链接64位库,但它正在尝试链接32位库。这显然是错误的。

我的问题是我无法弄清楚我的项目决定链接该库的位置。我看了看:

  • 项目属性,道具文件。尽管指定了lib路径,但未指定lib名称。
  • 项目属性 - >链接器 - >命令行。也没有。
  • 我查看了某些#pragma comment(lib, )的头文件,但我找不到任何用途。

我还能在哪儿看?有没有办法让Visual Studio告诉我它是如何决定在不同的库中链接的?

不确定它是否相关,但这是一个使用CppUnit的小型单元测试项目。当它应该链接cppunit-vc100-MTd.lib

时,它会链接cppunit-vc100-x64-MTd.lib

1 个答案:

答案 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")

但这应该很容易通过“查找文件”搜索“包含路径”进行搜索,这是“在文件中查找”配置中的一个预设选项。