2013-04-29 651 views
9

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

我Foo.cpp中试图

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

而且似乎工作。但是,这对我来说似乎很难受。

有没有一种骇人的方式?

回答

6

不,如果这需要相对于.cpp文件,则不行。这很不寻常,通常不能保证.lib已经部署在与使用该库的客户端源代码相关的目录中。虽然你当然可以给出安装说明,规定这一点。

正常的方法是只指定“foo.lib”并将链接器配置为使用Additional Library Directories设置搜索.lib文件的正确目录。这允许将.lib部署到任何地方,但是图书馆用户在设置他的项目时将不得不更新设置。否则这是一个非常正常的配置任务。与在附加依赖关系设置中指定库不完全不同。

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