环境: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
#include
void wait(int seconds)
{
boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}
void thread()
{
for (int i = 0; i
{
wait(1);
std::cout <
}
}
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库版本太低了。