ubuntu交叉编译国产开发板香橙派的环境配置(代码片段)

编程圈子 编程圈子     2022-12-03     648

关键词:

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

一、目的

在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.6
        libc.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

玩转开发板之交叉编译器安装

...在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Arc... 查看详情

qtcreator配置交叉编译工具链

参考技术A环境:ubuntu16.04桌面环境。说明:使用ubuntu16.04桌面环境,安装QtCreator之后,再利用QtCreator开发QT5GUI程序,如果编译的程序要运行在armlinux嵌入式系统中,则必须配置交叉编译工具链。主要配置内容:调试器、编译器、QT... 查看详情

开发环境搭建——交叉编译工具链安装(代码片段)

...第二个是针对64位系统的。  将对应版本的压缩包传入Ubuntu  在Ubuntu中创建目录:/usr/local/arm,命令如下: 1sudomkdir/usr/local/arm  创建完 查看详情

如何配置uboot(代码片段)

...下载uboot源码下载u-boot-2018.07.tar.bz2搭建开发环境host机为ubuntu-20 查看详情

ubuntu配置交叉编译环境(配置交叉编译工具链)配置arm-linux-gcc交叉编译工具链(添加交叉编译工具链(toolchain)到环境变量)(代码片段)

我们arm-linux-gnueabihf-gcc的交叉编译工具集在/home/yg/rv/sdk/rv1.8/rv1126_rv1109/buildroot/output/rockchip_rv1126_rv1109/host/bin/目录下把交叉编译工具链的路径添加到环境变量PATH中去:gedit/etc/profile在最后面添加:exportPATH= 查看详情

ubuntu配置交叉编译环境(配置交叉编译工具链)配置arm-linux-gcc交叉编译工具链(添加交叉编译工具链(toolchain)到环境变量)(代码片段)

我们arm-linux-gnueabihf-gcc的交叉编译工具集在/home/yg/rv/sdk/rv1.8/rv1126_rv1109/buildroot/output/rockchip_rv1126_rv1109/host/bin/目录下把交叉编译工具链的路径添加到环境变量PATH中去:gedit/etc/profile在最后面添加:exportPATH= 查看详情

迅为itop-4412精英版开发板mosquitto(mqtt协议)移植及使用测试

??需要在Linux系统下先交叉编译好mosquitto再移植到开发板中,至于最后PC端使用Linux还是Windows都可以。??注意事先要配置好交叉编译环境目录一、下载依赖包二、交叉编译1.交叉编译libuuid2.交叉编译openssl3.交叉编译mosquitto三、iTOP-441... 查看详情

交叉编译环境下gcov的使用

...备工作  linuxPC机  开发板  1)给linuxPC机安装交叉编译工具mipsel-unknown-linux-gnu,并配置环境变量  2)下载并安装Cunit和lcov,安装方法如下:  2.1)tar-zxvfCUnit-2.1.0-src.tar.gz    cd  CUnit-2.1.0  &n 查看详情

exynos4412交叉编译环境搭建(代码片段)

Exynos4412交叉编译环境搭建交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发、编译速度。环境:Tiny4412SDK1506开发板需要软件:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz检测系统是否已经安装有交叉编译环境:#arm-linux-gcc-vba... 查看详情

交叉编译和交叉工具链

...个嵌入式开发板,CPU是arm的然后在x86的平台下开发,比如Ubuntu的Linux,或者是Win7然后就需要:在x86的平台上,(用交叉编译器)去编译你写好的程序代码编译生成的(可执行的)程序, 查看详情

基于imx6ull配置开发环境

...,第二个是针对64位系统的。大家根据自己所使用的Ubuntu系统类型选择合适的版本,比如我安装的Ubuntu20.04是64位系统,因此我要使用gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。这两种交叉编译器我们已经下载好放... 查看详情

hi3516开发笔记:hi3516虚拟机交叉开发环境搭建之配置qtcreator开发交叉编译环境

...篇:《Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt》下一篇:《Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面》敬请期待…前言  前面... 查看详情

如何配置uboot(代码片段)

...下载uboot源码下载u-boot-2018.07.tar.bz2搭建开发环境host机为ubuntu-20.04;交叉编译工具链为:gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz;配置环境变量:在~/.bashrc写入exportPATH=$PATH:/home/liyongjun/project/board/LicheePi-Zero/... 查看详情

qt开发笔记(i.mx6uqt开发)

...种即可!本教程更倾向使用命令行编译Qt项目,在Ubuntu直接运行仿真,再交叉编译到开发板上运行查看实际效果即可!使用命令行编译请参考开发板光盘A-基础资料/【正点原子】I.MX6U用户快速体验V1.x.pdf第四章第4.6... 查看详情

hi3516开发笔记:hi3516虚拟机交叉开发环境搭建之配置qtcreator开发交叉编译环境

...篇:《Hi3516开发笔记(七):Hi3516虚拟机交叉开发环境搭建之交叉编译Qt》下一篇:《Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面》前言  前面交叉编译好... 查看详情

17.2搭建嵌入式qt运行环境

...采用友善之臂Tiny4412  Tiny4412开发板的内核、uboot、交叉编译器均采用友善之臂光盘自带的包。交叉编译器的版本是arm-linux-gcc4.5.1 ,该编译器版本对C++11支持不完善,如果需要编译更加高的QT版本,就需要升级交叉编译... 查看详情

移植opencv2.4.9到itop4412开发板

...眼下已经有被移植到嵌入式Linux环境上。本文介绍了OpenCV交叉编译的基本步骤。在opencv交叉编译之前要先进行依赖库的交叉编译,然后才干进行opencv库的交叉编译(由于opencv依赖于非常多库函数,假设不编译会造成,编译后的opencv无法... 查看详情

qt交叉编译环境

...技术A将安装全套的Qt开发环境,可以在PC端进行qt开发。Ubuntu14.04的Qt版本为5.2.1,16.04的Qt版本为5.5.1,高版本Qt库可以向下兼容运行低版本工具链编译的程序,因此这里选用5.2.1版本作为编译工具链。进入Qt工程目录中,目录下会... 查看详情