交叉编译部分boost库

1、进入/work/src_packages/boost_1_49_0目录,执行

      sudo ./bootstrap.s

      通过执行  sudo ./bootstrap.s  --show-libraries 显示所有的库

2、修改 project-config.jam 为以下内容:、

将:

 using gcc ;

修改为:

 using gcc : arm : /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc ;

3、在这里只交叉编译线程库,执行:

       sudo ./bjam stage --with-thread --build-type=complete --layout=tagged


一定要加上--layout=tagged这个选项,否则会报如下错误:

error: Cannot use --layout=system with --build-type complete.
error: Please used either --layout=versioned or --layout=tagged
error: if you wish to build multiple variants.
error: Note that --layout=system is default on Unix starting with Boost 1.40.


执行完毕完后在stage/lib目录下生成了线程相关的所有库文件:

libboost_thread-mt.a   

libboost_thread-mt-d.so       

libboost_thread-mt-s.a 

libboost_thread-mt.so
libboost_thread-mt-d.a

libboost_thread-mt-d.so.1.49.0

libboost_thread-mt-sd.a 

libboost_thread-mt.so.1.49.0


--stagedir=<stagedir> 存放编译后库文件的路径,默认是stage
--build-type=complete 编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared)
variant=debug|release 决定编译什么版本(Debug or Release?)
link=static|shared 决定使用静态库还是动态库。
threading=single|multi 决定使用单线程还是多线程库。
runtime-link=static|shared 决定是静态还是动态链接C/C++标准库。
--with-<library> 只编译指定的库,如输入--with-regex就只编译regex库了。
--show-libraries 显示需要编译的库名称

你可能感兴趣的:(linux,Boot,ARM)