c++ - 带有#pragma comment(lib) 的相对路径

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

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

我试过了

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

在 foo.cpp 中,它似乎 可以工作。但是,这对我来说似乎很老套。

有没有更简单的方法?

最佳答案

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

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

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

关于c++ - 带有#pragma comment(lib) 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280100/

相关文章:

c++ - 检测是否有qws服务器在运行

visual-studio-2010 - 在 Visual Studio IDE 的输出窗口中生成或打包期间显示 MSBuild 命令?

ios - 使用 -v 查看调用?

C++ : deleting multiple elements of a list while iterating the list

c++ - 对于未捕获的异常,如何同时获取 what() 和回溯?

c++ - 我应该使用什么 I/O 函数来写入 .bmp 文件?

visual-studio-2010 - VS2010几乎总是缩放滚动文本

c++ - Visual C++ Mat 图像元素队列 : how?

linker - 在链接中,运行时地址和可重定位目标文件的 .text(机器代码)部分中的地址有什么区别?

C++ 模板,链接错误