基于x86-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.设置环境变量(可选)

解压之后,还需要设置环境变量,才能正常使用交叉编译工具链

执行下面命令
gedit ~/.bashrc
打开.bashrc文件,在文件中加入下面语句
export PATH=$PATH: [本地路径]/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin
路径需要根据自己电脑的路径进行设置。

4.测试

重启电脑,执行下面的命令来验证工具链是否安装成功。
aarch64-linux-gnu-gcc -v

5. 编译生成Xavier下使用的库文件的动态库

在Xavier中,找到已经编译成功的可执行文件,比如perception。复制copylib.sh到当前目录下,在终端中执行
./copylib.sh perception
在当前文件下会生成包含可执行程序所使用的所有动态库的lib文件夹。

6. 拷贝Xavier下使用的库的include文件

一般在目录/usr/include下,比如opencv,opencv2,boost,eigen3,Eigen,pcl等。

7. 修改下载好的交叉编译工具链

将步骤1生成的动态库拷贝到 [本地目录]/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/lib
将步骤2的头文件拷贝到 [本地目录]/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/include中

8. 修改cmakelists.txt

(1)将以下内容复制到project(perception)之前,指定编译器:

#告诉cmake是进行交叉编译
set(CMAKE_CROSSCOMPILING TRUE)
# Define name of the target system
set(CMAKE_SYSTEM_NAME "Linux")
set(COMPILER_PATH "/home/xxy/xxy/svn/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu")
#指定交叉编译器路径
set(CMAKE_CXX_COMPILER "${COMPILER_PATH}/bin/aarch64-linux-gnu-g++")

(2)指定编译过程中寻找所需头文件和库文件的地址

include_directories
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值