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....