【问题标题】:Index of Boost cmake componentsBoost cmake 组件索引
【发布时间】:2020-09-03 14:02:33
【问题描述】:

我经常使用 boost,但每次尝试使用它时,我都会怀疑 Boost 模块的名称是什么,我应该在 cmake 中添加它。

例如,在我的上一个项目中,我想使用boost::concurrent::sync_queue,但我在任何地方都找不到模块的名称。我终于偶然发现了它,通过定位已经使用它的随机github项目,所以我只看CMakeLists.txt

最后我得到了那一行: find_package(Boost 1.70 REQUIRED COMPONENTS thread ) 但首先我尝试过:

find_package(Boost 1.70 REQUIRED COMPONENTS concurrent )
find_package(Boost 1.70 REQUIRED COMPONENTS threading )
find_package(Boost 1.70 REQUIRED COMPONENTS threads )

我记得在我所有的项目中,这是 cmake 最令人沮丧的阶段之一。 我找到了this site,但 cmake 中只有可用的标志/选项。

你们中是否有人设置/列出/索引或提示如何将使用的类/功能从 boost 链接到所需的组件? 如果这样的索引与boost版本有关,那将是无价的,非常方便。

【问题讨论】:

    标签: c++ boost cmake


    【解决方案1】:

    来自CMake\share\cmake-3.*\Modules\FindBoost.cmake

    FindBoost
    ---------
    
    Find Boost include dirs and libraries
    
    Use this module by invoking find_package with the form::
    
      find_package(Boost
        [version] [EXACT]      # Minimum or EXACT version e.g. 1.67.0
        [REQUIRED]             # Fail with error if Boost is not found
        [COMPONENTS <libs>...] # Boost libraries by their canonical name
                               # e.g. "date_time" for "libboost_date_time"
        [OPTIONAL_COMPONENTS <libs>...]
                               # Optional Boost libraries by their canonical name)
        )                      # e.g. "date_time" for "libboost_date_time"
    

    它说要使用:

    通过规范名称提升库,例如“libboost_date_time”的“date_time”

    【讨论】:

    • 好的,所以我搜索了这个文件(Ubuntu 20.04 上的/usr/share/cmake-3.16/Modules/FindBoost.cmake),经过一些正则表达式后我得到了这些模块:['random', 'math_c99f', 'regex', 'mpi', 'chrono', 'context', 'math_tr1f', 'thread', 'math_tr1', 'log_setup', 'atomic', 'math_c99', 'math_c99l', 'date_time', 'system', 'filesystem', 'fiber', 'serialization', 'math_tr1l'],但对我来说,它看起来不像所有可用的模块,也许我做得不好。如果有帮助,我从第 850~1160 行中提取它
    • 抱歉,我白做了,但规范名称是包含指令路径的第二部分? #include &lt;boost/thread/sync_queue&gt;thread?
    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2011-03-28
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多