无需安装Boost(Boost CMake Modularization)即可在CMake中轻松使用Boost

时间:2014-01-09 21:57:25

标签: boost cmake

似乎已经/正在努力做到这一点,但到目前为止我看到的大部分资源要么已经过时(带有死链接),要么几乎没有信息来实际构建一个小的工作样本(对于example依赖boost program_options来构建可执行文件。

此外,使用ExternalProject_Add时,如何解决Boost中的依赖关系?

我基本上希望在CMake中轻松使用Boost,几乎不需要手动配置。

3 个答案:

答案 0 :(得分:5)

试用Hunter包管理器:

hunter_add_package(Boost COMPONENTS regex system filesystem)
find_package(Boost CONFIG REQUIRED regex system filesystem)
target_link_libraries(foo PUBLIC Boost::regex Boost::system Boost::filesystem)

请注意,导入的Boost目标的使用是可重定位的包的导入

维基

实施例

答案 1 :(得分:4)

目前(2017年8月)Boost库不提供CMake支持,也不使用CMake构建。 Boost有自己的构建系统b2。 2017年7月,应移动所有提升库的Boost steering committee announced以使用CMake。这会影响用户和开发人员,即CMake将在内部用于构建库,并在外部提供CMake配置文件。

由于构建系统问题在过去几年中引发了激烈的讨论,并且部分社区对b2和CMake有强烈的感觉,这个决定的结果还不清楚(首先发布CMake,所有旧图书馆都支持CMake,甚至是Boost社区的分裂。)

2015年的原始答案

你可以考虑将CMake作为一流公民引入死亡的努力。请参阅mailing list thread about the topic

如果您不想使用像猎人包管理器这样的第三方工具,请检查您想要使用的最新版本的升级库。也许你很幸运,它提供了一些你可以使用的CMakeLists.txt文件。

答案 2 :(得分:0)

关于'使用CMake的提升并使提升使用成为CMake用户的理想选择'的最新工作是:

https://github.com/boost-cmake/boost-cmake

它需要cmake master分支(直到很快发布CMake 3.0.0)并且我有一段时间没有尝试构建它。推动社区中的某个人必须向前推进过渡到CMake。提升社区可能仍然忙于过渡到git。