静态库的VS2010链接在单独的解决方案中表现不同

时间:2014-11-19 11:37:53

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

假设我有一个解决方案S1,其中包含两个项目pdeppmaster,分别创建一个静态和动态库。我有配置:

  • 发布win32:生成pdep.lib
  • debug win32:生成pdepd.lib
  • 发布x64:生成{​​{1}}
  • debug x64:生成{​​{1}}

pdepx64.lib链接配置由pdepx64d.lib完成 代码中没有#pragma comment(lib)。没有共同的属性引用。

我观察到:

  • 在带有pdep和pmaster的s1中,链接器的命令行很好。即pmaster

  • 在通过单击项目pmaster新创建的解决方案S2中,我总是有一条额外的行,其中包含特定版本的pdep的绝对路径,无论配置如何。 ie { {1}}

S2中的链接器如何派生附加选项Configuration Properties -> Linker -> Input -> Additional Dependencies
如何摆脱它?

2 个答案:

答案 0 :(得分:1)

多种可能性:

  • 共同属性 - >参考
  • Linker或Librarian部分中的链接库依赖关系。这假设已经设置了项目依赖项。
  • #pragma comment(lib...)正扮演一些角色

答案 1 :(得分:0)

您可以使用带有预处理标志的msbuild来展平项目文件。然后将其加载到纯文本或xml编辑器中。查看链接器命令,看看$(属性)保存选项,然后查看设置的位置。

使用msbuild,您还可以使用更详细的日志记录,它将报告评估的条件等。

相关问题