#pragma comment(lib)的相对路径

时间:2013-04-29 13:38:09

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

使用Visual Studio 2010,我想在#pragma comment(lib)中指定相对于包含它的cpp文件的路径。

我试过

#pragma comment(lib, __FILE__"\\..\\foo.lib")

在foo.cpp中,似乎可以正常工作。但是,这对我来说似乎很苛刻。

是否有一种不那么强硬的方式?

1 个答案:

答案 0 :(得分:8)

不,如果这需要来自.cpp文件,请不要这样做。这是非常不寻常的,您通常无法保证.lib部署在与使用该库的客户端源代码相关的目录中。虽然你当然可以给出规定这个的安装说明。

通常的方法是只指定“foo.lib”并将链接器配置为使用Additional Library Directories设置在正确的目录中搜索.lib文件。这允许.lib在任何地方部署,但库用户在设置项目时必须更新设置。否则这是一个非常正常的配置任务。与在附加依赖项设置中指定库没有太大区别。

请记住,#pragma通常对帮助客户端程序员使用正确版本的静态链接库最有用。您通常必须提供静态.lib,调试与发布和/ MT vs / MD的4个版本。可能乘以您愿意支持的VS版本的数量。这可能会很匆忙。 _DLL,_DEBUG和_MSC_VER预定义宏可帮助您生成正确的#pragma。