环境:ubuntu12.04 arm9 arm-none-linux-gnueabi-g++
安装:
1. 确保ARM编译成功安装,并配置好环境变量。
2. 解压boost压缩包 3. 进入目录执行./bootstrap.sh, 此时形成bjam文件和project-config.jam 4. 编辑project-config.jam, 仅修改using gcc这行。因为我使用的是arm-none-linux-gnueabi-g++,所以将其改以下即可: using gcc : arm : arm-none-linux-gnueabi-g++; (注意空格) 5. 执行./bjam 或者 ./bjam stage --layout=tagged --build-type=complete (好像是后者生成的库文件更多) 6. 形成的静态和动态库文件就在stage目录下.调用:
test.cpp
#include <boost/thread.hpp>
#include <iostream> void wait(int seconds) { boost::this_thread::sleep(boost::posix_time::seconds(seconds)); } void thread() { for (int i = 0; i < 5; ++i) { wait(1); std::cout << i << std::endl; } } int main() { boost::thread t(thread); t.join(); }
编译命令: arm-none-linux-gnueabi-g++ test.cpp -o test1 -I./ -L./stage/lib -lboost_thread (当前目录就是boost的目录)
问题:编译成功后,将2进制文件放到arm上执行,会出现Inconsistency detected by ld.so: dl-deps.c: 622: _dl_map_object_deps: Assertion `nlist > 1' failed!这事提示版本问题,应该是使用的boost库版本太低了。