21

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

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

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

4

3 回答 3

33

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

于 2012-10-10T14:12:53.027 回答
23

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

#if CURRENT_VERSION >= 10
     #pragma comment(lib, "thirdPartyLibV2.0.lib")
#else //version < 10
     #pragma comment(lib, "thirdPartyLibV1.0.lib")
#endif
于 2012-10-10T14:10:52.360 回答
6

从某种意义上说,它所需要的只是包括自动拉入关联库的头文件。您甚至可以#ifdef..#endif根据您的环境有条件地引入正确的库。

当从头开始一个新项目时,并不是每个人都会使用你的 MSVC 项目,仅仅能够#include并让它工作就是一个编写良好的库的标志。

于 2012-10-10T14:12:33.697 回答