首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定CMake的Boost库名称

问如何确定CMake的Boost库名称
EN

Stack Overflow用户
提问于 2014-11-05 03:57:28
回答 2查看 25.1K关注 0票数 32

我试图在CMakeList.txt中为boost库找出哪些组件要使用boost。

我查看了这个目录/usr/local/include/boost。我随机挑选了一些文件夹并尝试使用FIND_PACKAGE。下面这些都很好用。

代码语言:javascript
复制
FIND_PACKAGE(Boost COMPONENTS thread system log log_setup
                    signals graph memory_order program_options REQUIRED)

我使用的特别的一个是property_tree。它无法工作,并产生以下错误消息:

/Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182上的CMake错误(消息): 无法找到所请求的Boost库。 Boost版本: 1.55.0 Boost包含路径: /usr/local/include 找不到以下静态Boost库: boost_property_tree

有人能解释我怎么或者在哪里找到正确的boost库名称吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-05 07:54:07

COMPONENTS部分FIND_PACKAGE仅搜索已编译的库。它无法检查只包含Boost主要部分的标头库。只有少数库需要链接(主要是那些执行特定于平台的事情的库)。

从您的示例来看,只需要预先构建thread、signals (与只使用标头的signals2相比)、system和program_options,然后与程序进行链接。对于其余部分,包含相关的头文件就足够了。

因此,将${Boost_INCLUDE_DIRS}添加到目标的包含目录就足够了。

有关这些库的Which boost libraries are header-only?的库列表,请参见此处

票数 34
EN

Stack Overflow用户

发布于 2018-03-22 12:10:10

如果编译了boost库,那么组件名称基本上是没有前缀和后缀的库的小写名称(例如,对于boost_system- be 141-mt-x64-1_66.lib,它将是'system')

还请参阅此处:https://cmake.org/cmake/help/v3.10/module/FindBoost.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26749461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档