2

我正在尝试维护一个 5 年前用 VC++ 6.0 编写的程序。它使用我们的“通用”库。我遇到的问题是,它要么链接到这些库的调试版本,要么链接到发布版本,这取决于我是否将 [库文件] 的 [目录] 设置为 [工具]->[选项]。

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

4

5 回答 5

3

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

试试这个,非常有用

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

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

#endif
于 2009-04-01T04:18:05.000 回答
1

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

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

在调试配置中,这将更改为:

c:\common\Debug\common.lib

在 Release 中,它将更改为:

c:\common\Release\common.lib
于 2009-03-19T22:46:08.190 回答
1

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

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

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

于 2009-03-19T22:53:18.750 回答
0

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

于 2009-03-19T22:42:11.867 回答
0

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

我从Tools->Options. 这里的路径对于在 MSVS VC++ 6.0 中运行的所有项目的所有配置都是全局的。

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

感谢所有为我指明正确方向的建议。

--- 阿利斯泰尔。

于 2009-03-20T09:49:40.170 回答