失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 配置交叉编译工具链-嵌入式Linux

配置交叉编译工具链-嵌入式Linux

时间:2023-03-05 11:55:53

相关推荐

配置交叉编译工具链-嵌入式Linux

在线课堂:/index(课程观看)

论坛:/(学术答疑)

开 发 板:/ (淘宝)

 /(天猫)

交流群一:QQ群:86922(鸿蒙开发/Linux/嵌入式/驱动/资料下载)

交流群二:QQ群:536785813(单片机-嵌入式)

公 众 号:百问科技

注意:使用我们提供的Ubuntu映象文件时,请按照我们的目录结构,手动设置交叉编译工具链以及编译的架构环境变量配置,(建议配置为永久生效),这里我们提供了两种交叉编译工具链,分别是buildroot构建生成的8.4以及yocto生成的9.3工具链,开发板系统默认安装的系统使用的是通过yocto编译构建,所以如果只想针对于文件系统应用做开发或者编译内核uboot等操作,建议只使用yocto的交叉编译工具链。

1.设置 yocto 交叉编译工具链(不推荐)

交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。

设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。

在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。

设置这3个环境变量有多种方法,任意选择其中一种方法即可。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。

1.1 临时生效

也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。

100ASK_STM32MP157_PRO全功能版

示例如下,第1条命令很长,这里使用 \ 用来换行,复制的时候需要一并复制,注意 \ 前面没有空格:

book@100ask:~$ source /home/book/100ask_stm32mp157_pro-sdk/ToolChain/\openstlinux_eglfs-linux-gnueabi/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabibook@100ask:~$ export ARCH=armbook@100ask:~$ export CROSS_COMPILE=arm-ostl-linux-gnueabi-

1.2 手动指定

先设置PATH环境变量,然后在make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链(执行make命令时指定的参数,只对当前命令有效;下次执行make时仍需要再次指定那些参数)。

100ASK_STM32MP157_PRO全功能版

示例如下,第1条命令很长,这里使用 \ 用来换行,复制的时候需要一并复制,注意 \ 前面没有空格:

book@100ask:~$ source /home/book/100ask_stm32mp157_pro-sdk/ToolChain/\openstlinux_eglfs-linux-gnueabi/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabibook@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-ostl-linux-gnueabi-

2.测试交叉编译工具链

2.1 测试环境变量:

book@100ask:~$ echo $ARCHarmbook@100ask:~$ echo $CROSS_COMPILEarm-ostl-linux-gnueabi-

2.2 测试交叉编译器:

执行以下命令,结果见后图:

book@100ask:~$ arm-ostl-linux-gnueabi-gcc –v

3.设置 buildroot 交叉编译工具链(默认使用)

交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。

设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。

在本文档中,源码、交叉编译工具链都是存放于/home/book目录下;如果你的目录不一样,请自行修改本节所讲述的命令。

设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。

3.1 永久生效

如需永久修改,请修改用户配置文件。

注意:如果不会使用vim命令,可以使用图形化的编辑工具,执行:gedit ~/.bashrc

book@100ask:~$ vim ~/.bashrc

100ASK_STM32MP157_PRO全功能版

在行尾添加或修改,加上下面几行(第3行很长,这里使用小字体方便大家复制):

book@100ask:~$ export ARCH=armbook@100ask:~$ export CROSS_COMPILE=arm-buildroot-linuxgnueabihf-book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量。

3.2 临时生效

也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。

100ASK_STM32MP157_PRO全功能版

执行以下3个命令,第3个命令很长,这里使用 \ 用来换行,复制的时候需要一并复制,注意 \ 前面没有空格:

book@100ask:~$ export ARCH=armbook@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

3.3 手动指定

先设置PATH环境变量,然后在make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链(执行make命令时指定的参数,只对当前命令有效;下次执行make时仍需要再次指定那些参数)。

100ASK_STM32MP157_PRO全功能版

示例如下,第1条命令很长,这里使用 \ 用来换行,复制的时候需要一并复制,注意 \ 前面没有空格:

book@100ask:~$ export PATH=$PATH:/home/book/100ask_stm32mp157_pro-sdk/ToolChain/\arm-buildroot-linux-gnueabihf_sdk-buildroot/binbook@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-

4.测试交叉编译工具链

4.1 测试环境变量:

book@100ask:~$ echo $ARCHarmbook@100ask:~$ echo $CROSS_COMPILEarm-buildroot-linux-gnueabihf-

4.2 测试交叉编译器:

执行以下命令,结果见后图:

book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc –v

如果觉得《配置交叉编译工具链-嵌入式Linux》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。