boost库

Linux下安装使用boost库

apt命令安装

sudo apt install libboost-dev
sudo apt install libboost-all-dev

这两个命令可以安装默认版本的boost库,如果想安装特定版本,需要从源码安装

源码安装

  1. 下载boost源码,如1.80版本
  2. 解压
tar -xjf boost_XX
  1. 生成b2
./bootstrap.sh
  1. 编译生成
./b2

这一步在当前目录编译生成了boost的库,在stage/lib下可以看到

  1. 编译生成后需要安装
./b2 --prefix=/usr/local install

这一步会将boost安装到/usr/local下,头文件安装到/usr/local/include/boost下,库文件安装到/usr/local/lib/下,后缀会包含boost的版本
编译参数

--prefix=   编译后安装路径,默认C:\Boost
--build-type= 编译类型,可选minimal(最小)、complete(完整),默认minimal。
--with-    加入此参数,代表只编译的库。
--without- 加入此参数,代表忽略编译的库。
toolset             编译器,win下默认msvc,用MinGW则选择gcc。

完整编译(会编译包含/不包含运行时库的debug/release的动态/静态库),编译器选择MinGW(gcc),多线程,编译完成后将库和头文件复制到prefix路径

使用

boost库中有两类型库,一种是不需要编译的,只需要包含hpp文件即可,另一种是需要编译的库,两种库采用cmake时有些区分。

不需编译的

不需要编译的boost库由于没有对应的库文件,所以在find_package命令中不能指定COMPONENTS,会找不到,只需要找到boost,添加boost的头文件路径即可

find_package(Boost REQUIRED)  # 
if(Boost_FOUND)
  target_include_directories(${Boost_INCLUDE_DIRS})
endif()

需要编译的

find_package(Boost REQUIRED COMPONENTS )  # 需要添加库名称
if(Boost_FOUND)
  target_include_directories(${Boost_INCLUDE_DIRS})
  target_link_libraries(Boost::boost::)
endif()

你可能感兴趣的:(boost库)