0
点赞
收藏
分享

微信扫一扫

x86与Xavier aarch64交叉编译简单实现

whiteMu 2022-02-09 阅读 126

文章目录

说明

编译平台:x86 ubuntu16.04
应用平台:xavier arm aarch64
本笔记旨在记录如何进行交叉编译,在x86 Ubuntu1604系统上编译出Xavier平台(架构为aarch64)下的应用软件。

安装交叉编译工具链

交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的GCC相同。
搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出ARM架构下Linux系统所需的操作系统、应用程序等,然后再上传到ARM服务器执行。
1.下载交叉编译工具

http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz

2.将交叉编译工具解压到本地
3.设置相关环境变量

sudo gedit ~/.bashrc
#在最后一行添加
export PATH=/home/hisense/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:"${PATH}" 
#刷新环境变量
source /etc/bash.bashrc

4.验证环境变量是否已经搭建好

aarch64-linux-gnu-gcc -v

若成功显示编译器的信息和版本则说安装和配置成功

使用交叉编译工具链在x86环境下编译aarch64架构下的应用软件程序

1、写一个简单的helloword代码hello.cpp
2、使用以下命令,编译在xavier上运行的软件

aarch64-linux-gnu-g++ -o helloArm hello.cpp

和在x86架构的平台上编译的区别在于只是把编译器从g++换成了aarch64-linux-gnu-g++
3、将生成的可执行文件helloArm拷贝到arm平台运行

使用CMake进行编译

在CMakeLists.txt文件中设置交叉编译工具即可,如果是一些官方库如opencv,需要吧xavier中对应的库文件和头文件拷贝到交叉编译工具相应的目录下,具体见参考链接[1]

cmake_minimum_required(VERSION 3.5.1)
project(testHello)

#告诉CMAKE是进行交叉编译
set(CMAKE_CROSSCOMPILING TRUE)
#设置此时进行编译的系统
set(CMAKE_SYSTEM_NAME "Linux")
#指定交叉编译器的路径
set(COMPILER_PATH "/home/hisense/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu")
set(CMAKE_CXX_COMPILER "${COMPILER_PATH}/bin/aarch64-linux-gnu-g++")

add_library(hellobase_arm SHARED hello.cpp)
add_executable(testHello_arm ./test.cpp)
target_link_libraries(testHello_arm hellobase_arm)

参考链接

[1]https://blog.csdn.net/RivenDong/article/details/106967003?spm=1001.2014.3001.5506
[2]https://blog.csdn.net/weixin_43941538/article/details/115521892?spm=1001.2014.3001.5506
[3]https://blog.csdn.net/qq_40321119/article/details/106458471?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-10.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-10.pc_relevant_default&utm_relevant_index=15

举报

相关推荐

0 条评论