(一)交叉編譯器簡介
在一種計算機環境中執行的編譯程式,能編譯出在另外一種環境下執行的**,這個編譯過程就叫交叉編譯.簡單地說,就是在乙個平台上生成另乙個平台上的可執行**.
(二)體系結構與作業系統
(1)常見的體系結構有arm結構、x86結構等.
(2)常見的作業系統有linux,windows等.
(3)同乙個體系結構可以執行不同作業系統,如x86上可以執行linux、windows等,在arm上可以執行linux、wince.
(4)同乙個作業系統可以在不同的體系結構上執行,比如linux可以執行在x86上,也可以執行在arm上.
(5)同樣的程式不可能執行在多個平台上,比如windows下應用程式不能在linux下執行.如果乙個應用程式想在另乙個平台上執行,必須使用針對該平台的編譯器,來重新編譯該應用程式的二進位制**.比如在linux系統下執行windows平台的qq軟體,必須按照以下幾個步驟:
1.qq程式源**
2.使用linux下的編譯器來編譯qq軟體的源**
這樣編譯出來的可執行程式就可以在linux下執行了.所以,如何使arm來執行使用者的應用程式呢,就需要用到針對arm的編譯器來編譯程式.
(三)使用交叉編譯器的原因
(1)cross -2.95.3 tar: 該版本較早,除了編譯vivi外一般不使用.
(2)arm920t-eabi.tgz: 4.1.2版本的編譯器,支援eabi,可以編譯tx2440a開發板上的所有程式.
(3)arm-linux-gcc: 4.3.2版本的編譯器,支援eabi,是最常見的交叉工具鏈.
attention!!!
(四)arm-linu-gcc應用例項
例項:如何使用交叉編譯器編譯原始碼包boa-0.94.13.tar.tar
1. 啟動smb伺服器,將原始碼包放在共享資料夾/home/lishuai下
2. 輸入命令: tar xzvf boa-0.94.13.tar.tar
//解壓該原始碼包
//一般的原始碼包內有makefile檔案,執行make就可以編譯,但該原始碼包內沒有,此時執行make是無效的
//仍然沒有makefile,但找到了configure檔案,通過執行configure檔案可以生成makefile
[root@localhost lishuai]# ./configure
//執行configure檔案,生成了makefile檔案
//由於要編譯出在arm平台上的程式,就需要使用交叉編譯器.在makefile檔案內的綠色大寫字母都是makefile變數,可以看到變數cflags = -g -o2 -pipe -wall -l,該變數是設定編譯選項;變數cc = gcc,該變數是設定需要使用的編譯器.由於要使用交叉編譯器arm-linux-gcc,所以該變數應設定為cc = arm-linux-gcc,cpp = arm-linux-gcc -e,儲存並退出。
[root@localhost lishuai]#make
交叉編譯器
交叉編譯器可以使我們在主機上編譯出可以在嵌入式裝置上執行的程式 install gcc aarch64 linux gnu 安裝64位用於作業系統的交叉編譯器,gcc版本是5.4,安裝位置在 usr bin sudo apt get install gcc arm linux gnueabihf 安...
ubuntu安裝交叉編譯器 安裝交叉編譯器
2 安裝方法二 1 安裝方法一 開啟ubuntu終端 使用sudo apt list gcc arm 可以檢視所有的交叉編譯器,假設安裝gcc arm linux gnueabihf,則使用sudo apt get install gcc arm linux gnueabihf就裝好了。參考 2 安...
arm linux交叉編譯器
本文出自 http embdev.gotdns.org 版本選者在linux裡面是非常重要的,沒有windows一樣有效的管理,建議選者文中的版本。否則出現錯誤的概率很高,所有的版本區別請參考各位庫的官方主頁。雖然網上有現成的工具,但是,一步步的製作下來可以讓新手理解一下linux各個庫的關係,以及...