Ubuntu交叉編譯器是什麼
⑴ 怎麼在ubuntu系統下安詳交叉編譯器
1.主機:ubuntu 10.10 gcc-4.4.5, kernel-2.6.35
sudo apt-get install bison flex build-essential patch libncurses5-dev
更新系統基本的編譯工具集
(用UBUNTU最大的好處就是可以 在線更新一些需要的系統包,APT-GET)
2 使用的是CROSSTOOL做的,需要的軟體包
第一個是工具鏈編譯腳本
第二個是2進制工具集
第三個是GCC-3.4.5的源代碼
第四個是依賴的linux標准函數庫
第五個是依賴的thread庫
第六個是LINUX代碼
(1).linux 源代碼其實是用了 在編譯的時候需要調用一些了linux庫文件和數據結構或者是頭文件,類似驅動開發依賴源代碼
(2).這個是可以指定的找到合適的就可以,不一定就是這個版本的
第七個是標准庫的頭文件了
3 UBUNTU10自帶的GCC版本是4.4.5 太高編譯會出現語法錯誤,所以安裝4.1的就好
sudo apt-get install gcc-4.1
sudo rm /usr/bin/gcc (刪除GCC,它只是個到gcc-4.3.2的軟鏈接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的軟鏈接)
(重新做個軟體連接指向4.1就好,這個可以在/usr/bin 下會出現:gcc-4.1 gcc-4.4)
4 修改 dash (ubuntu 默認的是 dash ,編譯指向的是bash)
ls -la /bin/sh
看到鏈接的是 dash ,則請運行以下命令
sudo dpkg-reconfigure dash
選擇 no 以刪除 dash
此處如果不改好的話,編譯時會出現錯
5 以上系統配置完成,下面開始修改腳本編譯(一下就是網上參考的了,很多的都是這么做的,謝謝那些真正看懂腳本的大牛們)
$tar –zxvf crosstool-0.43.tar.gz
$cd crosstool-0.43
在此目錄下可以看到有很多.sh腳本和.dat配置文件,每一個支持的處理器都有它所相應的腳本。http://www.linuxidc.com/假如選用demo- arm- softfloat.sh 就是建立目標為支持軟浮點的arm交叉編譯工具鏈。
3.修改demo-arm-softfloat.sh
$vim demo-arm-softfloat.sh
修改下面兩句
TARBALLS_DIR=$HOME/downloads //表示下載的源碼的存放目錄
RESULT_TOP=/opt/crosstools //表示生成的工具鏈的存放目錄
為:
TARBALLS_DIR=/home/linux/downloads(源碼存放目錄)
RESULT_TOP=/home/linux/crosstools(生成工具鏈目錄)
4.修改 gcc-3.4.5-glibc-2.3.6.dat
$ vim gcc-3.4.5-glibc-2.3.6.dat
修改內容為:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.5
GLIBC_DIR=glibc-2.3.6
LINUX_DIR=linux-2.6.26.5(內核版本)
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
5.修改glibc-2.3.6.tar.bz2包內的configure文件
將
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[3-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
修改為
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.[1-2][0-9]*) 《--------------------------------------------3920行
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
還有3981行也有這樣的代碼 一個是ld,一個是ar
6.$ ./ demo-arm-softfloat.sh
注意啊UBUNTU許可權管理很嚴格,在執行腳本前,最好的就是把crosstool腳本所在的目錄和幾個源文件的目錄設置成 777
腳本運行的第一個是創建build的目錄,在腳本所在的目錄下,然後是解壓所有的源文件,檢查所有的依賴關系,進行編譯
大概需要很長時間吧,我是睡覺醒來看看 好了,,,,,,呵呵
即使如此的工作,幹了2個通宵搞定,當然邊干我還在三國殺,,,,,,,
當然成功後,有點小激動,熬了一宿,失眠了,,,,亢奮中
⑵ 為什麼要用交叉編譯器
交叉編譯,簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。這里需要注意的是所謂平台,實際上包含兩個概念:體系結構(Architecture)、操作系統(Operating System)。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
有時是因為目的平台上不允許或不能夠安裝我們所需要的編譯器,而我們又需要這個編譯器的某些特徵;有時是因為目的平台上的資源貧乏,無法運行我們所需要編譯器;有時又是因為目的平台還沒有建立,連操作系統都沒有,根本談不上運行什麼編譯器。
綜上,在嵌入式開發的時候我們就要使用交叉編譯器。
⑶ ubuntu怎麼安裝arm交叉編譯工具
Ubuntu下安裝ARM交叉編譯器過程筆記,有圖有真相。
Linux下armcc和arm-linux交叉編譯環境的配置
2、開始安裝(建議大家新建一個文件夾),然後將文件復制到新建的文件夾中
Ubuntu下安裝ARM交叉編譯器圖文教程
輸入命令:sudotarxvzfarm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
Ubuntu下安裝ARM交叉編譯器圖文教程
安裝完成後,輸入ls命令,可以看到一個opt文件夾,如下圖
Ubuntu下安裝ARM交叉編譯器圖文教程
3.修改環境變數,把交叉編譯器的路徑加入到PATH:
利用tab鍵的補齊功能進入該路徑,如下圖
輸入pwd命令,查看當前路徑的絕對路徑
/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin
⑷ 虛擬機ubuntu14.04怎麼安裝交叉編譯器
虛擬機ubuntu14.04怎麼安裝交叉編譯器,解答如下
開始安裝(建議大家新建一個文件夾),然後將文件復制到新建的文件夾中
輸入命令: sudo tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz
安裝完成後,輸入ls命令,可以看到一個opt文件夾,如下圖
修改環境變數,把交叉編譯器的路徑加入到PATH:
利用tab鍵的補齊功能進入該路徑,如下圖
輸入pwd命令,查看當前路徑的絕對路徑
/home/cf/ARM/opt/FriendlyARM/toolschain/4.5.1/bin
⑸ ubuntu下進行嵌入式C語言開發時,什麼叫交叉編譯為什麼要交叉編譯
交易編譯就是將文件編譯成目標機可執行的文件。
比如說:你在PC機上寫一個helloword,怎麼讓它到開發板上運行,開發板上的指令跟PC機不到,就需要用到交叉編譯工具,編譯成開發板上能識別的指令。
⑹ Ubuntu下如何構建交叉編譯環境
下面就一些問題作一個說明,以期拋磚引玉。
基於Linux操作系統的應用開發環境一般是由目標系統硬體(開發板)和宿主PC機所構成。目標硬體開發板用於運行操作系統和系統應用軟體,而目標板所用到的操作系統的內核編譯、應用程序的開發和調試則需要通過宿主PC機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,並口或乙太網介面建立連接關系。
但在此我建議構建如下的交叉編譯環境,適合個人或研發小組使用:單獨拿出一台PC機(PII以上即可,就用以前淘汰的舊機器就可以),在該PC上安裝桌面的Linux操作系統(如Red Hat Linux 8.0及以上),可以採用默認的安裝選項(注意要包含ftp服務),這台PC作為Linux伺服器,除管理員以外,一般不直接讓其他人去操作。
將該Linux伺服器接入區域網,並新建一些合法用戶,以便其他的PC機(在此我們將其稱為工作站)的合法用戶能訪問到Linux伺服器。而其他的PC機(工作站)仍然使用Windows操作系統,原來幹啥繼續幹啥。
需要的軟體工具包括:
1、FTP客戶端程序(如Cuteftp,可到網上下載)。
2、Telnet工具(如SecureCRT,可到網上下載)。
3、移植到某一特定ARM平台的Linux操作系統內核源碼(一般由銷售商整理提供)。
4、GNU編譯工具,可由相關網站下載,或由銷售商整理提供。
在工作站安裝:
在某工作站PC上安裝FTP客戶端程序和Telnet工具,安裝完畢後應該可以在該工作站PC和Linux伺服器之間進行文件的傳輸,並在工作站PC可以通過Telnet登陸到Linux伺服器(可能需要將Linux伺服器的防火牆服務關閉才能完成)。
在Linux伺服器安裝:
將工作站PC上的Linux操作系統內核源碼壓縮包和GNU編譯工具通過FTP傳送到Linux伺服器的某個目錄(如合法的用戶目錄),然後在該目錄下解壓,並將GNU編譯工具安裝到默認的工作目錄即可,以上工作通過在工作站PC使用Telnet工具完成,而不需要在Linux伺服器上進行。
Linux操作系統內核的編譯:
Linux操作系統內核的編譯一般有一個比較固定的步驟,會根據MakeFile文件的不同而略有差異,可參考相關文檔,編譯的工作在工作站PC使用Telnet工具完成。
按固定的步驟編譯內核完成以後,會在相應目錄生成可執行的二進制文件,通過FTP將該可執行的二進制文件傳回工作站PC,然會再通過ADS或SDT下的燒寫工具寫入開發板的Flash即可。
⑺ 什麼是交叉編譯環境
交叉編譯(cross-compilation)是指,在某個主機平台上(比如PC上)用交叉編譯器編譯出可在其他平台上(比如ARM上)運行的代碼的過程。
⑻ 如何在ubuntu中搭建交叉編譯環境toolchain
1.安裝交叉編譯環境 sudo apt-get install gcc g++ libcc1 libg++ make gdb
2.安裝交叉編譯器 f
tp:
//ftp.
arm.linux.org.uk/pub/armlinux/toolchain/ 下載 cross -3.2.tar.bz2或者懶得去找乾脆
wget f
tp://ftp.
arm.linux.org.uk/pub/armlinux/toolchain/ cross -3.2.tar.bz2
解壓
sudo tar jxvf /home/zhaifang/cross -3.2.tar.bz2
sudo mv /home/zhaifang/usr/local/arm /usr/local
3.交叉編譯器加入路徑 sudo vi /etc/bash.bashrc後面加入
if [ -d /usr/local/arm ] ; then
PATH=/usr/local/arm/bin:'${PATH}'
fi
4.使環境生效 #source /etc/profile
5.檢查 echo $PATH 出現/usr/local/arm/bin說明成功了
6.測試 arm-linux-gcc -v
⑼ 什麼是交叉編譯器
交叉編譯器:在一種計算機環境中運行的編譯程序,能編譯出在另外一種環境下運行的代碼
⑽ 什麼是交叉編譯,為什麼要使用交叉編譯
交叉編譯的概念(來自網路):
簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
舉個例子:
我們在Linux系統比如Ubuntu上編寫的C程序完全可以拿到Windows系統上正常運行。