linux交叉编译工具链问题总结

 

问题描述:环境变量已正确添加,但执行gcc可执行程序时,显示没有那个文件或目录。

原因分析:首先要分清两种不同的架构,arm架构和x86架构,arm架构运行的程序,使用x86架构去开发,就需要交叉编译工具链编译的程序,才能够在arm架构上运行;使用arm架构进行开发,将不在需要交叉编译工具链。此次服务器是aarch64的arm架构,运行环境也为arm架构,所以无需交叉编译工具链

解决办法:在虚拟机(x86架构)上进行交叉编译工作。

虚拟机x86架构安装两种arm交叉编译工具链:

方法一:

我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc。

此方法安装的是最新版的,但是此方法需要FQ,否则99%会失败,这就是为什么网上大多都用压缩包安装的原因:

首先Ctrl+Alt+T弹出终端,使用如下命令进行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

该方法工具链安装在默认路径,可执行文件无法查看,以下为常用的可执行文件:

  1. arm-linux-gnueabihf-gcc:ARM架构下的C编译器。
  2. arm-linux-gnueabihf-g++:ARM架构下的C++编译器。
  3. arm-linux-gnueabihf-gcov:用于代码覆盖率分析的工具。
  4. arm-linux-gnueabihf-gdb:ARM架构下的调试器。
  5. arm-linux-gnueabihf-ld:ARM架构下的链接器。
  6. arm-linux-gnueabihf-as:ARM架构下的汇编器。
  7. arm-linux-gnueabihf-objcopy:用于文件格式转换的工具,例如将ELF文件转换为bin文件。
  8. arm-linux-gnueabihf-objdump:用于反汇编ELF文件的工具。
  9. arm-linux-gnueabihf-readelf:用于查看ELF文件信息的工具。
  10. arm-linux-gnueabihf-size:用于查看目标文件大小的工具。

 

 sudo apt-get install gcc-arm-linux-gnueabihf执行结束后查看可执行文件

要查看安装的可执行文件,可以使用以下命令:

dpkg -L gcc-arm-linux-gnueabihf

这将列出安装包中的所有文件。可以在输出中找到可执行文件的路径,并使用ls命令来查看它们。

方法二:

安装64位的交叉编译工具,安装包:arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2

1.先把下载好的安装包移动到根目录下的tmp目录中(/tmp)

2.使用tar命令解压安装包,即在Terminal中输入以下命令:(前面的sudo表示使用root权限执行该命令)

sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /

注意是大写的字母C,此命令会把安装包解压到根目录下的opt的TuxamitoSoftToolchains里面(/opt/TuxamitoSoftToolchains)

如图逐层查看找到gcc-4.6.4所在的位置:/opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi

 3.解压完成后,再在(/usr/local)中创建一个新目录arm,即在Terminal中输入以下命令:

sudo mkdir /usr/local/arm

创建arm目录成功后,还需要给它解放全部权限,即在Terminal中输入以下命令:

sudo chmod 777 /usr/local/arm

4.在解压出来的目录中找到并把整个gcc-4.6.4目录复制到刚刚建好的arm目录中,命令如下:

先cd切换到gcc-4.6.4所在目录(切换后先ls看一下有没有gcc-4.6.4目录):

cd /opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/

再执行 cp 复制命令,-r 表示整个目录以及里面的任何东西

sudo cp -r gcc-4.6.4 /usr/local/arm

5.打开(.bashrc)配置环境变量和库变量,目的是以后可以在任何位置使用该交叉编译器,命令如下:

sudo vi ~/.bashrc

用vi或者vim打开后,在文件最后添加两行,并输入以下代码:第一行是添加执行程序的环境变量,第二行是库文件的路径

1 export PATH=$PATH:/usr/local/arm/gcc-linaro-7.5.0/bin
2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-linaro-7.5.0/lib

然后保存退出即可。

 6.使用source命令重新加载生效该配置文件

source /etc/profile

7.检验是否安装成功,在 Terminal 输入以下命令输出版本信息:

aarch64-linux-gnu-gcc -v

结果如图所示:得到刚刚安装的7.5.0版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值