3.8 检测Boost库
Boost是一组C++通用库。这些库提供了许多功能,这些功能在现代C++项目中不可或缺,但是还不能通过C++标准使用这些功能。例如,Boost为元编程、处理可选参数和文件系统操作等提供了相应的组件。这些库中有许多特性后来被C++11、C++14和C++17标准所采用,但是对于保持与旧编译器兼容性的代码库来说,许多Boost组件仍然是首选。
本示例将向您展示如何检测和链接Boost库的一些组件。
Boost由许多不同的库组成,这些库可以独立使用。CMake可将这个库集合,表示为组件的集合。FindBoost.cmake
模块不仅可以搜索库集合的完整安装,还可以搜索集合中的特定组件及其依赖项(如果有的话)。我们将逐步建立相应的CMakeLists.txt
:
首先,声明CMake最低版本、项目名称、语言,并使用C++11标准:
project(recipe-08 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
添加可执行目标,编译源文件:
$ cmake -D BOOST_ROOT=/custom/boost
或者,可以同时传递包含头文件的变量和库目录的BOOST_LIBRARYDIR
变量: