linux下boost编译及链接到系统目录

1、打开终端,cd 到boost目录。

2、使用默认的参数直接运行 ./bootstrap.sh

3、./bjam 生成lib文件(没注意到还有个形式是./bjam install,直接安装到系统目录下面,如果使用了这个命令就不需要向下看了)。

4、在stage/lib下生成了很多libboost*.a和libboost*.so.1.42.0

5、现在我不想拷贝到系统目录下面,就直接使用

sudo ln -s /media/project/project/Thrid_source/Third_CSource/boost_1_42_0/include /usr/include/boost

将boost目录下的incude文件夹直接链接到系统包含目录下面。


6、在/media/project/project/Thrid_source/Third_CSource/boost_1_42_0/include /usr/include/boost/stage

下面创建了一个shell脚本文件link_lib.sh,内容是

sudo find $PWD/lib/*.a -type f -exec ln -s {} /usr/lib/ /;
sudo find $PWD/lib/*.so.1.42.0 -type f -exec ln -s {} /usr/lib/ /;
然后在终端中cd到boost/state目录, 执行./link_lib.sh,输入密码后动态库链接完成。

 

7、打开IDE,测试一下吧。

 

后记:

安装boost不难,难的是对于我这个linux脚本菜鸟来说,写 link_lib.sh是最难的。

其中遇到的几个问题:

1、ls链接需要指定绝对路径,否则有可能将链接出一个错误的文件。

2、find后不知道exec如何使用,现在看来 sudo find $PWD/lib/*.a -type f -exec ln -s {} /usr/lib/ /;这条命令是由

sudo find $PWD/lib/*.a -type f(用来查找当前目录下面的lib文件夹中所有的后缀为.a的文件),

加上 -exec ln -s {} /usr/lib/ /; (将查找出来的文件在 /usr/lib下面 链接一个同名文件, {}就相当从上半条命令中得到的结果,做为后半条命令的参数, /;代表命令行结束。

你可能感兴趣的:(boost)