【交叉编译】配置交叉编译工具链
配置交叉编译工具链
- 一、 设置交叉编译工具链
- 1.永久生效
- 2.临时生效
- 3.手动指定
- 二、测试交叉编译工具链
- 1.测试环境变量:
- 2.测试交叉编译器:
一、 设置交叉编译工具链
交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。
设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。
在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。
设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。
1.永久生效
如需永久修改,请修改用户配置文件。
注意:如果不会使用vim命令,可以使用图形化的编辑工具,执行:
gedit ~/.bashrc
vim ~/.bashrc
(1) IMX6ULL Pro版
在行尾添加或修改,加上下面几行(第3行第4行为一行命令):
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量。
(2) IMX6ULL MINI EMMC版
在行尾添加或修改,加上下面几行(第3行第4行为一行命令):
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=PATH:/home/book/100askimx6ullmini−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/bin设置完毕后,要执行source/.bashrc命令使其生效,并通过arm−buildroot−linux−gnueabihf−gcc−v命令来验证是否配置成功。book@100ask:PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin 设置完毕后,要执行 source ~/.bashrc 命令使其生效,并通过arm-buildroot-linux-gnueabihf-gcc -v 命令来验证是否配置成功。 book@100ask:~PATH:/home/book/100askimx6ullmini−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/bin设置完毕后,要执行source /.bashrc命令使其生效,并通过arm−buildroot−linux−gnueabihf−gcc−v命令来验证是否配置成功。book@100ask: source ~/.bashrc
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v
以上操作是设置IMX6ULL Pro版工具链的过程,mini的操作与它类似。
2.临时生效
也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。
(1) IMX6ULL Pro版
执行以下3个命令,第3个命令很长,需要包含第四行全部复制:
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
(2) IMX6ULL MINI EMMC版
执行以下3个命令,第3个命令很长,需要包含第四行全部复制:
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
3.手动指定
先设置PATH环境变量,然后在make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链(执行make命令时指定的参数,只对当前命令有效;下次执行make时仍需要再次指定那些参数)。
(1) IMX6ULL Pro版
示例如下,第1条命令很长,这里使用小字体方便大家复制:
book@100ask:~$ export PATH=PATH:/home/book/100askimx6ull−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/binbook@100ask:PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin book@100ask:~PATH:/home/book/100askimx6ull−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/binbook@100ask: make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=PATH:/home/book/100askimx6ull−sdk/ToolChain/gcc−linaro−6.2.1−2016.11−x8664arm−linux−gnueabihf/binbook@100ask:PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin book@100ask:~PATH:/home/book/100askimx6ull−sdk/ToolChain/gcc−linaro−6.2.1−2016.11−x8664arm−linux−gnueabihf/binbook@100ask: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
(1) IMX6ULL MINI EMMC版
示例如下,第1条命令很长,这里使用小字体方便大家复制:
book@100ask:~$ export PATH=PATH:/home/book/100askimx6ullmini−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/binbook@100ask:PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin book@100ask:~PATH:/home/book/100askimx6ullmini−sdk/ToolChain/arm−buildroot−linux−gnueabihfsdk−buildroot/binbook@100ask: make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
二、测试交叉编译工具链
1.测试环境变量:
book@100ask:~$ echo ARCHarmbook@100ask:ARCH arm book@100ask:~ARCHarmbook@100ask: echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-
2.测试交叉编译器:
执行以下命令,结果见后图:
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v
【交叉编译】配置交叉编译工具链相关推荐
- 交叉编译知识解析(一) —— 交叉编译和交叉工具链
一.交叉编译简介 1.什么是交叉编译 1.1 本地编译 解释什么是交叉编译之前,先要明白一个概念:本地编译 我们之前常见的软件开发,都是属于本地编译:在当前的PC下,x86的CPU下,直接编译出来程序 ...
- 交叉编译(交叉工具链)
一.交叉编译(交叉工具链) 在一个环境下编译生成一个可以在另一个环境中执行的可执行文件的工具 本地编译命令 gcc 实现把高级语言的C文件,翻译成二进制文件 是可以在虚拟机中找到的: which gc ...
- 交叉编译和交叉工具链
交叉编译和交叉工具链 本地编译: 在你需要运行程序的那台机器上编译 交叉编译: 在其他机器上编译,然后在本地或者另外的机器上运行 交叉编译主要是为了, 1.将所有编译都一起集合统一起来:例如,设置一个 ...
- 嵌入式 配置arm工具链
嵌入式 配置arm工具链 一.简述 记--在Ubuntu18.04配置4.4.1版本的arm工具链,使用arm工具链编译程序生成的可执行文件可以在开发板运行. 工具链:链接:ht ...
- 交叉编译说明:工具链安装和环境变量配置
目录 一 简单了解交叉编译 ① 什么是交叉编译 ② 为什么需要交叉编译 ③ 宿主机和目标机 二 搭建交叉编译工作环境 ① 安装工具链 ② 配置环境变量 ● 配置临时环境变量 ● 配置永久环境变 ...
- CLion配置WSL工具链
文章目录 前言 解决方案 验证 前言 在我们使用CLion时,如果本地装了Linux子系统(如Ubuntu),想用WSL工具链,但Credentials一直报错,这时可以用下面的解决方案. 如果你还没 ...
- 【dMRI】desktop docker配置FSL工具链环境
1.自动下载并启动 docker run --rm -it -v "D:/USC/LONI-student-worker/FSL_workshop":/usr/src/app di ...
- 制定交叉编译工具_交叉编译工具链的制作
交叉编译工具链的制作 前言及准备 本笔记制作的交叉编译工具已通过简单验证,对初次有需求需要搭建交叉工具链有一定的指导意义,制作工具链比较耗时,需做好花费一整天时间的准备. 资料学习链接 linux工具 ...
- 交叉编译工具链的制作
交叉编译工具链的制作 前言及准备 本笔记制作的交叉编译工具已通过简单验证,对初次有需求需要搭建交叉工具链有一定的指导意义,制作工具链比较耗时,需做好花费一整天时间的准备. 资料学习链接 crossto ...
- Buildroot构建指南——工具链
Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件.一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工 ...
最新文章
- Tab页面手势滑动切换以及动画效果
- kali下Wreckuests | DDOS Atacks With HTTP-Flood
- yml配置文件中有特殊字符解决方案
- Java lambda例子
- A Hard Problem
- Altium Designer之原理图
- word vba 点击任意域代码,刷新整个文档的域代码值
- Linux操作系统原理与应用03:进程
- Boost下载安装编译配置使用指南
- Jetpack 介绍
- html5块注释,HTML 块引用标签
- 电脑莹石云显示认证失败_添加萤石云方法与常见问题解答
- php 邮箱附件 大小限制,Exmail+Postfix修改邮件附件大小
- 汉语语言分析(2) - 短语
- 用matlab仿真自由落体,基于Matlab的小球自由落体仿真实现
- 泰拉瑞亚服务器怎么让玩家注册,泰拉瑞亚服务器权限指令大全
- Not allowed to access vertices on mesh ‘Combined Mesh (root: scene)
- 世界上没有技术驱动型公司!
- 服务器网站搭建入门教程
- 2016版excel_EXCEL表格如何换行