如何在VC ++ 6.0中自动链接调试/发布库?

时间:2009-03-19 22:39:06

标签: visual-c++ linker release-builds debug-build

我正在尝试维护5年前在VC ++ 6.0中编写的程序。它使用我们的“通用”库。我遇到的麻烦是它要么链接这些库的调试版本还是发布版本,这取决于我是否[库文件]的[目录]设置为“common / debug”或[common / release] [工具] - > [菜单]

在构建发布版本时,如何在构建调试版本和[common \ release \ common.lib]时将其链接到[common \ debug \ common.lib]?如果我在库目录中有两个路径,它似乎链接到它找到的第一个路径。

5 个答案:

答案 0 :(得分:3)

不是指定include文件夹中的路径,而是根据配置使用包含库的所有最佳方法是使用#pragma

尝试一次,非常有用

#ifdef _DEBUG
#pragma comment(lib, "..\\DllTest\\Debug\\DllTest.lib")

#else 
#pragma comment(lib, "..\\DllTest\\Release\\DllTest.lib")

#endif

答案 1 :(得分:1)

在[Project Properties] - > [Linker] - > [Input] - > [Additional Dependencies]中,您可以使用$(ConfigurationName)占位符,如下所示:

c:\common\$(ConfigurationName)\common.lib

在Debug配置中,这将更改为:

c:\common\Debug\common.lib

并在发布中它将更改为:

c:\common\Release\common.lib

答案 2 :(得分:1)

  

如果我在库目录中有两个路径,它似乎链接到它找到的第一个路径。

只需添加调试设置的调试文件夹和发布设置的发布文件夹即可。

几乎所有编译器,链接等设置都是按配置(如果调试和发布不同,项目属性将在“所有配置”中显示为空白(如果我记得正确的文本)。

答案 3 :(得分:0)

您可以在Additional Dependancies字段中指定要链接到的库的完整路径,这可以为调试和发布版本提供不同的值。

答案 4 :(得分:0)

我找到的解决方案有点像理查德& “1800信息”的......

我从Tools->Options删除了公共库路径。此处的路径对于在MSVS VC ++ 6.0中运行的所有项目的所有配置都是全局的。

然后,我为每个配置添加了Project->Settings中相应库的完整路径。 Hense调试配置为D:\VSS\Common\Debug\Common.lib,发布配置为D:\VSS\Common\Release\Common.lib。这似乎有效,并且我第一次没有构建警告!

感谢所有建议,指出我看似正确的方向。

--- Alistair。