使用#pragma comment(lib)的相对路径

12

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

我尝试过:

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

我在foo.cpp中试了试,好像可以工作。但是这似乎有些hack。

有没有更不hack的方法?


谢谢这个技巧!对于一个小的内部项目来说,这对我是可以接受的。 - 56ka
1个回答

11

不行,如果这需要从.cpp文件相对路径访问,那就不行。这是非常不寻常的,通常无法保证.lib文件部署在与使用库的客户端源代码相对的目录中。尽管您可以提供安装说明来规定这一点。

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

请记住,#pragma通常最有用的是帮助客户端程序员使用正确版本的静态链接库。您通常必须提供4个静态.lib构建版本,debug vs release和/MT vs /MD。这可能很快变得复杂。_DLL、_DEBUG和_MSC_VER预定义宏可帮助您生成正确的#pragma。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接