use*_*986 15 c++ dynamic-linking visual-studio-2010 static-linking
我遇到了一段使用#pragma comment(lib,"libraryname")的代码.
为什么这种用法与仅从属性菜单链接库相反?在什么情况下需要这种用法?我在使用C++ Visual Studio 2010的 Windows中.
很高兴看到一个需要这种用法的例子.
Ale*_*x F 28
库编写器可以将#pragma comment(lib, ...)命令放在公共头(.h)文件中.在这种情况下,客户端不需要将此库添加到链接器依赖项列表.通过在程序中包含h文件,客户端将自动链接到所需的库.
Luc*_*ore 22
经典示例 - 链接到库的不同版本:
#if CURRENT_VERSION >= 10
#pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
#pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif
Run Code Online (Sandbox Code Playgroud)
从某种意义上讲,它所包含的一切都包括要自动拉入关联库的头文件。您甚至可以做#ifdef..#endif魔术,根据您的环境有条件地引入正确的库。
从头开始一个新项目时,并不是每个人都将使用您的MSVC项目,只是能够#include使其正常工作是编写良好库的标志。