【问题标题】:Relative path with #pragma comment(lib)#pragma comment(lib) 的相对路径
【发布时间】:2013-04-29 13:38:09
【问题描述】:
使用 Visual Studio 2010,我想在 #pragma comment(lib) 中指定相对于包含它的 cpp 文件的路径。
我试过了
#pragma comment(lib, __FILE__"\\..\\foo.lib")
在 foo.cpp 中,它 似乎 可以工作。但是,这对我来说似乎很老套。
有没有更简单的方法?
【问题讨论】:
标签:
c++
visual-studio-2010
linker
pragma
【解决方案1】:
不,如果这需要与 .cpp 文件相关,则不需要。这是非常不寻常的,您通常不能保证 .lib 部署在与使用该库的客户端源代码相关的目录中。尽管您当然可以给出规定这一点的安装说明。
通常的方法是只指定“foo.lib”,并将链接器配置为使用附加库目录设置搜索 .lib 文件的正确目录。这允许将 .lib 部署在任何地方,但库用户在设置项目时必须更新设置。否则这是一个非常正常的配置任务。并且与在 Additional Dependencies 设置中指定库没有太大区别。
请记住,#pragma 通常最有助于帮助客户端程序员使用正确版本的静态链接库。您通常必须提供 4 个静态 .lib 版本、调试与发布以及 /MT 与 /MD。可能乘以您愿意支持的 VS 版本的数量。这很快就会变得毛茸茸的。 _DLL、_DEBUG 和 _MSC_VER 预定义宏可帮助您生成正确的#pragma。