archlinux安裝交叉編譯工具鏈

2022-08-20 01:54:10 字數 3224 閱讀 2140

1. 在/usr/local下新建資料夾:arm

[guo@archlinux local]$sudo mkdir arm

2. 將交叉編譯工具拷貝到arm資料夾中

[guo@archlinux arm]$sudo mv ~/downloads/arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 .

[guo@archlinux arm]$ ls

arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

3. 解壓

[guo@archlinux arm]$ sudo tar -xjvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

[guo@archlinux arm]$ ls

arm-2011.03  arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

4. 新增到path環境變數

[guo@archlinux arm]$ sudo gedit ~/.bashrc

在檔案的最後寫入以下內容:

path=$path:/usr/local/arm/arm-2011.03/bin

5. 執行.bashrc檔案,使設定生效。

進入使用者主目錄:

[guo@archlinux arm]$ cd

執行:[guo@archlinux ~]$ . .bashrc

6. 驗證交叉編譯器是否安裝正確

輸入[guo@archlinux ~]$ arm-none-linux-gnueabi-後,按2下tab鍵,如果能夠看到很多

arm-none-linux-gnueabi-字首的命令,基本可以確定安裝成功。

arm-none-linux-gnueabi-addr2line  arm-none-linux-gnueabi-gdbtui

arm-none-linux-gnueabi-ar         arm-none-linux-gnueabi-gprof

arm-none-linux-gnueabi-as         arm-none-linux-gnueabi-ld

arm-none-linux-gnueabi-c++        arm-none-linux-gnueabi-nm

arm-none-linux-gnueabi-c++filt    arm-none-linux-gnueabi-objcopy

arm-none-linux-gnueabi-cpp        arm-none-linux-gnueabi-objdump

arm-none-linux-gnueabi-elfedit    arm-none-linux-gnueabi-ranlib

arm-none-linux-gnueabi-g++        arm-none-linux-gnueabi-readelf

arm-none-linux-gnueabi-gcc        arm-none-linux-gnueabi-size

arm-none-linux-gnueabi-gcc-4.5.2  arm-none-linux-gnueabi-sprite

arm-none-linux-gnueabi-gcov       arm-none-linux-gnueabi-strings

arm-none-linux-gnueabi-gdb        arm-none-linux-gnueabi-strip

7. 讓64位的系統能夠執行和編譯32位程式。

[guo@archlinux ~]$ arm-none-linux-gnueabi-gcc -v

如果不成功,那就有可能需要安裝32位執行庫。

編輯 /etc/pacman.conf,取消下面內容的注釋:

[multilib]

include = /etc/pacman.d/mirrorlist

[guo@archlinux ~]$ sudo nano /etc/pacman.conf

[sudo] password for guo:

[guo@archlinux ~]$

更新軟體包列表並公升級系統

[guo@archlinux ~]$ sudo pacman -syu

如果不管用,用命令安裝32位執行庫

[guo@archlinux ~]$ sudo pacman -s lib32-glibc

8. 測試工具鏈

編寫程式檔案hello.c,輸入以下內容:

#include

int main()

[guo@archlinux ~]$ cd /tmp

[guo@archlinux tmp]$ nano hello.c

[guo@archlinux tmp]$ cat hello.c

#include

int main()

[guo@archlinux tmp]$

通過以下命令進行編譯,編譯後生成名為hello的可執行檔案,通過file命令可以檢視檔案的型別。

當顯示以下資訊時表明交叉工具鏈正常安裝了,通過編譯生成了arm體系可執行的檔案。

注意,通過該交叉編譯鏈編譯的可執行檔案只能在arm體系下執行,不能在基於x86的普通pc上執行。

[guo@archlinux tmp]$ arm-none-linux-gnueabi-gcc hello.c -o hello

[guo@archlinux tmp]$ ls

fcitx-socket-:0  hello.c                sogou-qimpanel-cellguo

hello            serverauth.xla5px22fa  sogou-qimpanel:0.pid

[guo@archlinux tmp]$ file hello

hello: elf 32-bit lsb executable, arm, eabi5 version 1 (sysv), dynamically linked, interpreter /lib/ld-linux.so.3, for gnu/linux 2.6.16, not stripped

更詳細內容參考以下部落格:

交叉編譯工具鏈(gcc)建立 -- 寫的非常棒(兩篇寫的非常相似)

交叉編譯工具鏈 -- 主要是介紹

交叉編譯詳解

在Archlinux下編譯安裝amule dlp

專案位址 antileech 主要問題是 有個小問題需要patch,還有就是wxgtk版本的問題。自己不熟,所以折騰了半天,也沒有其他說得具體的。git clone cd amule dlp autogen.sh mkdir build cd build 主要是加了wx config,也可以直接用後...

安裝交叉編譯工具

2.安裝 mkdir usr local arm cd usr local arm 新增環境變數,這樣在任何目錄下都可以使用該工具 1 vim bash profile 2 新增如下語句 path path usr local arm 2.95.3 bin 3 讓剛修改的環境變數檔案立即生效 sor...

交叉編譯工具安裝

操作筆記 最經學習 linux 環境下的程式開發,剛剛起步。今天下午建立的交叉編譯環境,真是辛勞。步驟如下 1.確保安裝了標準 c開發環境,指令驗證 sudo apt get installbuild essential 如果安裝提示你的版本最新,否則直接自動安裝標準的 c語言開發環境 gcc。2....