【问题标题】:libboost_system on WindowsWindows 上的 libboost_system
【发布时间】:2015-07-08 09:46:39
【问题描述】:

在 Visual Studio 2013 中编译 DLL 时,我包含了一些 boost (1.58) 头文件。一个是<boost/system/error_code.hpp>。众所周知,默认情况下,这将需要链接到 boost 库。但是,我想使用仅标头变体而不处理另一个库。为此,我想出了how to make it work on Linux + Mac。但是,我无法让它在 Windows 上运行。链接器总是需要那个额外的库 (libboost_system-vc120-mt-gd-1_58.lib)

Visual Studio 中有什么技巧可以避免链接到该库?

【问题讨论】:

  • 也许您链接的其他 boost 库之一不是使用 -DBOOST_ERROR_CODE_HEADER_ONLY 编译的?
  • 我没有链接到任何 boost 库。这是第一个。
  • 我不能用 GCC 复制这个,我只是尝试用一个测试应用程序构建一个 boost_filesystem dll,只要为两者都指定了-DBOOST_ERROR_CODE_HEADER_ONLY,就不需要链接 boost_system。

标签: c++ visual-studio boost


【解决方案1】:

好的,我自己找到了。这在任何关于提升库的问题中都没有提到,包括在 Windows 上。但是,如果您搜索禁用 boost 自动链接(这实际上是包括库在内的罪魁祸首),您会找到解决方案:在项目级别定义 BOOST_ALL_NO_LIB(除了另一个问题中提到的仅标头标志)。

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 2011-07-02
    • 2016-03-14
    • 1970-01-01
    • 2011-02-22
    • 2012-10-14
    • 2011-06-14
    • 2012-11-25
    相关资源
    最近更新 更多