參考鏈接:https://blog.csdn.net/zz56z56/article/details/83021583
注:正常安裝后,不同用戶切換,需重新刷新環境變量:source /etc/profile
一、下載arm-linux-gcc-4.4.3.tar交叉編譯包
1.ARM官網下載
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
2.百度雲下載鏈接如下:
鏈接:https://pan.baidu.com/s/1DM9sQUO0T2BuLCL5HPYoSA
提取碼:g2se
二、安裝交叉編譯工具(注:下面所有安裝步驟請在普通用戶下執行,勿用root,且在同一終端執行)
1.解壓安裝包 (解壓后文件存放路徑:/opt/FriendlyARM/toolschain/4.4.3)
命令行:sudo tar -zxvf arm-linux-gcc-4.4.3.tar.gz -C / # 注:-C 后面有空格
2.將 /opt/FriendlyARM/toolschain/目錄下的4.4.3 copy 至 /usr/local/ 目錄下新建arm目錄下,如下:
cd /usr/local
sudo mkdir arm
sudo chmod 777 arm
sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm
3.修改環境變量,將把arm-linux-gcc添加到PATH中。有三種方式,推薦方式 2 :
方法一:修改/etc/bash.bashrc文件,此文件只對當前用戶適用
修改之前先root權限
sudo -s或sudo su -
sudo gedit /etc/bash.bashrc
在最后加上export PATH=$PATH:/usr/local/arm/4.4.3/bin
保存,退出,然后刷新環境變量使其生效:source /root/.bashrc
方法二:修改/etc/profile文件,此文件對所有用戶適用
sudo gedit /etc/profile
在最后加上: export PATH=$PATH:/usr/local/arm/4.4.3/bin
保存,退出,然后刷新環境變量使其生效:
source /etc/profile
方法三:修改/etc/environment文件
sudo gedit /etc/environment
在最后加上:/usr/local/arm/4.4.3/bin
保存,退出,然后重啟系統
4.檢查環境變量和編譯器是否安裝成功
4.1 環境變量
echo $PATH
如輸出:如果可以顯示/usr/local/arm/4.4.3/bin,那么環境變量添加成功
4.2 檢查arm-linux-gcc是否安裝正確
arm-linux-gcc -v #正常會顯示當前安裝版本編號等
如輸入arm-linux-gcc -v,輸出如下錯誤:/usr/local/arm/arm-linux-gcc-4.4.3/bin/arm-linux-gcc: 15:exec:
/usr/local/arm/arm-linux-gcc-4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
原因:使用的是64位系統,但是編譯工具是32位,需要安裝32位支持庫:
解決方案:命令行:sudo apt-get install lib32ncurses5 lib32z1
安裝完,再次測試命令:arm-linux-gcc -v,正常情況下會輸出如下:
三、編寫文件,用安裝編譯器進行測試
創建main.c文件,輸入
#include<stdio.h>
int main()
{
printf("=====123123============\n");
return 0;
}
使用命令: arm-linux-gcc main.c -o main 進行編譯
如果出現如下錯誤:
/usr/local/arm/arm-linux-gcc-4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory
原因:相應庫版本太舊,更新庫文件
解決方案:命令行:sudo apt-get install lib32stdc++6
安裝完,再次執行命令:arm-linux-gcc main.c -o main,全部完成
編譯完成后會生成Hello可執行文件,輸入以下命令可以查看生成的文件信息:
輸入:readelf -h main
可以看到可執行文件的平台為ARM平台