Linux-项目笔记(停更)
安装 arm-linux-gcc
参考链接
方法2可参考:安装和使用arm-linux-gcc交叉编译工具链
Ubuntu 18.04安装arm-linux-gcc交叉编译器
Ubuntu 18.04安装arm-linux-gcc交叉编译器的两种方法
注意
/tmp
文件夹是Linux的临时文件夹,用来存放临时的缓存文件, 目录默认清理10天未用的文件,系统重启会清理目录
(还有一个/var/tmp
也是临时文件夹)
方法1
此方法安装的是最新版的,但是此方法需要 目前好像不用翻墙了翻墙
,否则99%会失败
打开终端,输入安装命令(卸载的需要再卸这里暂时不用):
- 进行arm-linux-gcc的安装:
sudo apt-get install gcc-arm-linux-gnueabihf
- 进行arm-linux-g++的安装(看需要安):
sudo apt-get install g++-arm-linux-gnueabihf
- arm-linux-gcc的卸载:
sudo apt-get remove gcc-arm-linux-gnueabihf
- arm-linux-g++的卸载:
sudo apt-get remove g++-arm-linux-gnueabihf
安装完成后一般在 /usr
目录下生成一个名为 arm-linux-gnueabihf
的文件夹
- 接着在
root
状态下输入命令打开文本配置环境变量
和库变量
(目的是以后在任何位置使用该交叉编译器)
gedit /etc/profile
- 在文件最后添加两行,PATH:是刚刚生成的
arm-linux-gnueabihf
文件夹里面的bin
,lib
的路径
export PATH=$PATH:/usr/arm-linux-gnueabihf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/arm-linux-gnueabihf/lib
- 使用
source
命令重新加载生效该配置文件
source /etc/profile
- 输入验证命令
arm-linux-gnueabihf-gcc -v
弹出这个表示安装成功:
- 接着可以去写一个
.c
文件然后测试一下看看能不能编译成功(编译原理步骤跟之前gcc类似)
arm-linux-gnueabihf-gcc xxx.c -o xxx
编译成功会生成 xxx
文件(没有后缀的),如果此时想 ./xxx
执行它会发现报错 ZSH: executable file format error:./ open
(可执行文件格式错误),可以用 file xxx
命令 可以知道它是在 32-bit ARM架构
上运行的
如果你的 gcc是32位的
,然后你的 Ubuntu是64位的
,那就要下载32位相关库
sudo apt-get install lsb-core lib32stdc++6
gcc和arm-linux-gcc有何不同?
本质上都是编译器,而gcc是linux系统用来 将代码编译成可执行程序的手段
。编译出来的是适用于linux系统的 可执行二进制文件
。 所以用gcc编译出来的可执行程序只有在linux系统下面可以运行。
arm-linux-gcc告诉编译器,我编写的环境是linux,但是我希望生成的 可执行程序是在arm上面跑的
。这就是 交叉编译
。编写环境和执行环境分离的一种手段。