Ubuntu 交叉编译国产开发板香橙派的环境配置

  • 一、目的
  • 二、准备工具
  • 三、操作步骤
    • 1. ubuntu安装交叉编译工具
    • 2. 建一个demo程序 a.c
    • 3. 编译
    • 4. 检查文件信息
  • 四、开发板上设置
    • 1. 检查环境
    • 2. 动态库处理

一、目的

在Ubuntu上编译香橙派运行的c/c++程序。
目前普遍使用的工具链下载地址:
http://releases.linaro.org/components/toolchain/binaries/

二、准备工具

  • 香橙派开发板
  • Ubuntu 14 x86

三、操作步骤

1. ubuntu安装交叉编译工具

sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install g++-arm-linux-gnueabi
# 如果硬件带浮点模块,后面再加上 hf,如 gcc-arm-linux-gnueabihf

安装后输入 :

arm-linux-gnueabi

按tab,可以看到自动补全的命令列表。

2. 建一个demo程序 a.c

#include <stdio.h>int main(){printf("Hello");return 0;
}

3. 编译

arm-linux-gnueabi-gcc test.c -o a

4. 检查文件信息

# 查看文件是否输出为arm架构
> file a
a: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=8efe9016795007bcfa5f72b1b8f0e828300b95af, not stripped

四、开发板上设置

1. 检查环境

# 首先直接运行Ubuntu上编译的 a ,报错
> a
bash: ./a: No such file or directory# 打印依赖共享库
> ldd  a
不是动态可执行文件# 查看该程序的加载程序
> readelf  -l  a  | grep interpreter
[Requesting program interpreter: /lib/ld-linux.so.3]
# 注意在arm也要有这个文件# 执行下面程序查看ld-linux.so.3是否存在,如果不存在则在开发板安装 gcc-arm-linux-gnueabihf,g++-arm-linux-gnueabihf> ls /lib/ld-linux.so.3
lrwxrwxrwx 1 root root 40 Mar 25 01:43 /lib/ld-linux.so.3 -> /usr/arm-linux-gnueabi/lib/ld-linux.so.3

如果软链接地址不正确,则手动调整。

2. 动态库处理

# 再次运行程序
> ./a
提示:
./a: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
# 运行命令查看
> ldconfig  -p  | grep libc.so.6libc.so.6 (libc6,hard-float, OS ABI: Linux 3.2.0) => /lib/arm-linux-gnueabihf/libc.so.6
# 显示结果libc.so.6存在,猜测可能运行程序时找不到这个路径
# 由于 /usr/arm-linux-agnueabihf/lib下有libc.so.6,故把这个目录添加到环境变量
# 这里带了香橙派编译gpu的部分路径,可按需求删除,留最后一段 /usr/arm-linux-gnueabi/lib/ 即可
export LD_LIBRARY_PATH=/home/orangepi/CedarX/arm-linux-gnueabi:/home/orangepi/CedarX/output/lib:/home/orangepi/CedarX/linuxgnueabi_3.10:/usr/arm-linux-gnueabi/lib/
# 再次运行程序,成功输出
> ./a
Hello

Ubuntu 交叉编译国产开发板香橙派的环境配置相关推荐

  1. 瑞芯微RK3399芯片开发板香橙派4的HDMI音频播放功能测试(Linux系统)

    瑞芯微RK3399芯片开发板香橙派OrangePi 4(16G)用拥有4G内存16G存储,集成双频WiFi.蓝牙5.0.HDMI输出.千兆网口.USB接口等丰富的功能接口,支持双摄像头输入和两路视频输 ...

  2. 全志H6开发板香橙派OrangePi 3 LTS在 Linux系统中安装Home Assistant的方法(上篇)

    注意事项: 本篇介绍的是通过docker安装 Home Assistant 的方式,并且只提供在 Ubuntu 或者 Debian 系统中的安装方法, Home Assistant 更详细的使用方法请 ...

  3. 双千兆网口路由器方案开发板香橙派R1 Plus LTS连接USB无线网卡测试说明(OpenWRT 系统)

    说明:使用的OpenWRT 系统是OrangePi官方适配的,如果其他第三方固件,需要自己实测下.支持的无线网卡列表如下.其中 RTL8723BU 和 MT7601U 都是 只支持 Station M ...

  4. 迅为国产开发板值得入手的三款开发板

    迅为国产开发板值得入手的三款开发板 瑞芯微RK3568: RK3568处理器 瑞芯微 RK3568 芯片采用 22nm 制程工艺,搭载一颗四核 Cortex-A55 处理器和 Mali G52 2EE ...

  5. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  6. 基于node.js开发环境下创建及开发vue.js项目的环境配置骤

    基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...

  7. 基于Ubuntu 18.04机器人操作系统环境和深度学习环境配置

    基于Ubuntu 18.04机器人操作系统环境和深度学习环境配置详解 CUDA+Cudnn+ROS+anaconda+ubuntu装机必备 笔记本双系统安装 U盘启动项安装ubuntu18.04.1 ...

  8. Ubuntu与arm开发板之间构建NFS数据通道

    1.主机安装nfs服务 nfs主要是可以在开发板和主机之间搭建一个共享文件夹,在文件夹中的文件双方可以共享,免除了传输文件的过程,其他常用的方法还有scp和基于zmodem的rz,sz. (1)主机使 ...

  9. 【嵌入式Linux应用】初步移植MQTT到Ubuntu和Linux开发板

    1. 概述 ​ 本篇主要是记录将MQTT移植安装到百问网STM32MP157开发板上,并且是跑一下MQTT的一个例程来验证,要完成本次移植安装,必须要保证电脑和开发板都能上网.. 2. 软件平台 ​ ...

最新文章

  1. 升级Jekyll 3.0
  2. jQuery复选框选中状态更改事件
  3. 定义__asm块作为C宏
  4. system文件_大文件拷贝,试试NIO的内存映射
  5. 邮箱通知php,PHPMailer 发送邮件(含详细介绍及使用方法说明)
  6. redis 缓存过期默认时间_redis缓存过期机制
  7. Search API
  8. 【pytorch】torch.cuda.empty_cache()==>释放缓存分配器当前持有的且未占用的缓存显存
  9. 深入理解Java反射+动态代理,java开发面试笔试题
  10. windows下怎么打开psql命令
  11. 服务器磁盘会影响应用么,想了解服务器磁盘的IO吞吐量,用sqlio 工具会不会对当前服务器有影响...
  12. java学习(分布式架构)
  13. LTE网络架构和协议栈
  14. 实习连载日记4.1-每天都是愚人节
  15. JVM运行和类加载全过程
  16. 周受资将兼任TikTok CEO;默沙东中国总裁罗万里将出任美国总裁 | 高管变动2021年4月26日-5月2日
  17. Could not find a package configuration file provided by “std_msg“ with any of the following names:
  18. Linux运维07:free命令详解
  19. Portraiture Mac(PS磨皮滤镜插件) v3.5.1已注册版
  20. 我的保研之旅——北京航空航天大学、北理工、南大

热门文章

  1. NIO 五 文件通道
  2. DG BROKER 之 REINSTATE DATABASE (把旧主库恢复到备用库)
  3. 比spire.pdf速度更快:EVO PDF Print Crack
  4. 到期域名查询 查询域名到期时间的网站
  5. java aa 咖啡怎样冲泡_【新手入门】世界六大咖啡冲泡方法,总有一种你想要的...
  6. 模拟天地飞7接收机的无人机自主飞行,基于51单片机实现
  7. AEJoy—— 七个拖尾效果表达式实例
  8. 时间显示rpc服务器不可用,“电脑时间的RPC服务器不可用”是什么原因?
  9. 牛人计算机考研复习计划(经典)
  10. 当windows 7系统中程序和功能无法卸载IE9,10,11时的方法