ubuntu16.04 安装boost库

https://www.boost.org/在官网下载源码
1 解压压缩包,并进入文件目录中

2 执行
sudo ./bootstrap.sh

3 执行
sudo ./b2 install
这样头文件就默认安装在/usr/local/include/目录下,库文件就安装在/usr/local/lib下

但是编译的时候可能会出现新的问题,例如下面的代码:

#include
#include
#include
using namespace std;

int main(){
string str = “data-num=“1056"”;
boost::regex reg(”\d{1,6}");//{1,6}表示\d重复1-6次,\d表示匹配整数
boost::smatch what;
string::const_iterator begin = str.begin();
string::const_iterator end = str.end();

boost::regex_search(begin,end,what,reg);
string result(what[0].first,what[0].second);
cout << result << endl;
return 0;

}
这里用到regex.hpp的库,那么我们在编译的时候会还需要加上相应库的链接,如下:
(-I(大写i)选项是添加头文件的路径,-L选项是添加库文件的路径,-l(小写L)是具体哪个库文件)
g++ -o test test.cpp -std=c++11 -I /usr/local/include -L /usr/local/lib -l boost_regex

出现下面的问题:
./test: error while loading shared libraries: libboost_regex.so.1.67.0: cannot open shared object file: No such file or directory

因为系统不知道***.so文件在哪个位置,找不到该文件。这个时候就要在/etc/ld.so.conf中加入xxx.so所在的目录,因为我们的.so库文件是放在/usr/local/lib目录下,所以要在该文件中加入这一行这个路径就可以了。添加完以后执行下面的命令
ldconfig
success

你可能感兴趣的:(system)