文档章节

arm交叉编译器编译boost库并调用

宁宁爸
 宁宁爸
发布于 2016/11/18 10:00
字数 260
阅读 241
收藏 0

环境: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库版本太低了。

本文转载自:http://www.tuicool.com/articles/RJBRn2Y

共有 人打赏支持
宁宁爸
粉丝 82
博文 57
码字总数 25735
作品 0
高级程序员
私信 提问
浅析gcc、arm-linux-gcc和arm-elf-gcc的关系

浅析gcc、arm-linux-gcc和arm-elf-gcc的关系 嵌入式开发交流群280352802,欢迎加入! 一、GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器...

长平狐
2013/06/03
1K
1
交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟..... 原文链接http://www.hi-beiyu.com/archives/312 一. 什么是ABI和E...

cubieboard
2014/08/10
0
0
arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

转自http://www.veryarm.com/296.html 命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 ...

u012142460
2017/12/14
0
0
GCC的ARM体系结构相关的编译选项解析

和ARM体系结构相关的选项 这些是为ARM(Advanced RISC Machines)结构定义的“-m”开关: -mapcs-frame 对所有函数都生成一个遵从ARM程序调用标准的堆栈帧,即使在正确执行代码无需严格这么做...

coloriy
2018/01/16
0
0
Ubuntu上交叉编译opencv及opencv_contrib并移植到ARM板之一

零、环境准备: 编译环境:Ubuntu-14.04 交叉编译工具链:arm-linux-gnueabi-4.5.1 目标机器:粤嵌GEC210开发板S5PV210(Cortex-a8) opencv库:opencv-3.2.0(源码),解压至某一目录 open...

qq_30155503
2018/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Httpd 整合 Tomcat 步骤

环境:Tomcat8 + Httpd2.4 工作原理:借助于Tomcat的AJP连接器实现Apache与Tomcat的通信 配置步骤: 1. 配置httpd.conf 新增: Include conf/extra/mod_jk.conf 修改:添加 index.jsp <IfM...

ZeroneLove
昨天
1
0
Docker笔记3——容器命令(未写完,明天整理接着写)

未写完,明天整理接着写 新建并启动容器 docker run docker run [OPTIONS] IMAGE [COMMEND] [ARG...] OPTIONS: --name=[容器新名字] :为容器指定一个名称 -d:后台运行容器,并返回容器ID,...

HappyBKs
昨天
1
0
2018个人年终总结

感谢领导的信任和指导,新的一年获得了很多成长和提高,改掉了很多不好的习惯。 在这一年里,我在领导的帮助下,主要完成了以下功能: 1、完成上海银行版本投资营销相关功能的开发。 2、完成车...

万山红遍
昨天
9
0
保密工作与linux系统的发展

保密工作从性质上可以分成商业方面的保密和国家安全方面的保密。由于自己从事的是IT方面的工作,工作中必然会接触涉及到计算机信息方面的相关文件。加上单位已近通过武器装备科研生产单位二级...

linux-tao
昨天
2
0
Spark共享变量

概述 Spark程序的大部分操作都是RDD操作,通过传入函数给RDD操作函数来计算。这些函数在不同的节点上并发执行,但每个内部的变量有不同的作用域,不能相互访问,所以有时会不太方便,Spark提...

仟昭
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部