C ++ Visual Studio:使用pragma注释进行链接

时间:2012-10-10 14:08:52

标签: c++ visual-studio-2010 static-linking dynamic-linking

我遇到了一段使用#pragma comment(lib,“libraryname”)的代码。

为什么这种用法与仅从属性菜单链接库相反?在什么情况下需要这种用法?我在使用C ++ Visual Studio 2010的Windows中。

很高兴看到一个需要这种用法的例子。

3 个答案:

答案 0 :(得分:24)

库编写器可以在公共头(.h)文件中放置#pragma comment(lib, ...)命令。在这种情况下,客户端不需要将此库添加到链接器依赖项列表。通过在程序中包含一个h文件,客户端将自动链接到所需的库。

答案 1 :(得分:20)

经典示例 - 链接到不同版本的库:

#if CURRENT_VERSION >= 10
     #pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
     #pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif

答案 2 :(得分:5)

它包含在所有意义上,包括自动引入相关库的头文件。您甚至可以#ifdef..#endif魔法根据您的环境有条件地引入正确的库。< / p>

从头开始创建一个新项目时,不是每个人都会使用你的MSVC项目,只需能够#include并让它工作是一个写得很好的库的标志。