【问题标题】:C++ Visual Studio: linking using pragma commentC++ Visual Studio:使用编译指示进行链接
【发布时间】:2012-10-01 01:05:02
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 在这种情况下,我是否还需要将库物理添加到 visusal sutudio 项目中?
    • 没有。但库必须在可用的库搜索路径中
    【解决方案2】:

    它包含在某种意义上,它只需要包含自动拉入关联库的头文件。您甚至可以使用#ifdef..#endif 魔术来根据您的环境有条件地引入正确的库。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-27
        • 2012-05-27
        • 1970-01-01
        • 2015-12-13
        • 2017-10-25
        • 1970-01-01
        • 2014-03-24
        • 2010-11-09
        相关资源
        最近更新 更多