『壹』 如何安裝arm-linux-gcc
arm-linux-gcc是基於arm架構的linux平台交叉編譯工具。在安裝時主要有以下幾步:
最常見的首先要下載arm-linux-gcc安裝包,或者也可以從網上下載arm-linux-gcc的源碼。
進入Linux,將當前目錄設為arm-linux-gcc的下載目錄,並且輸入tar -xzf arm-linux-gcc-4.4.3.tar.gz,同時將文件解壓,解壓後會有一個opt的文件夾。如下圖所示:
『貳』 如何安裝arm-linux-gcc
對於學嵌入式linux的來說,拿到板子後,建立開發環境是開發的第一步,arm-linux-gcc是基於arm架構的linux平台交叉編譯工具。下面是按轉步驟。版本arm-linux-gcc-4.4.3
下載arm-linux-gcc-4.4.3.tar.gz安裝包。
打開終端,輸入 sudo tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /
安裝arm-linux-gcc-4.4.3
在終端輸入sudo vim /root/.bashrc,在最後一行輸入:
export PATH=$PATH:/opt/toolschain/4.4.3/bin加入arm-linux-gcc的開發環境
安裝兼容庫,在終端輸入:sudo apt-get install g++-multilib
測試成功沒有,登錄root後輸入: arm-linux-gcc -v
出現如上提示,說明按轉成功。
『叄』 深度linux的arm-linux-gnueabihf-gcc編譯參數如何配
一般來說,交叉編譯工具是用於在一種架構的主機(例如x86)上,編譯另一種主機(例如arm)運行的程序,在這個編譯期間,需要用到的頭文件/庫,往往需要從一個叫目標文件系統(sysroot)的路徑開始查找。
sysroot里包含usr,lib,usr/lib usr/include等文件夾結構和必要的頭文件和庫,你理解為目標機器上的整個文件系統,搬到你這台電腦上,然後作為一個文件夾存在。
交叉編譯原則上不能用主機(host)的頭文件,
這首先是因為編譯器在查找頭文件的相對路徑時,交叉編譯器會配置為查找目標平台架構的位置,和主機的gcc不一樣,這也是為什麼它去arm-linux-gnueabihf這個目錄去尋找的原因。
其次主機和目標機的系統版本有差異,再加上處理器架構的差異,往往有很多兼容性問題,甚至有難以解決的編譯錯誤。
如果一定要用本機的頭文件系統來湊合,那麼需要把所有的-I都列出來,即不僅需要-I/usr/include,還需要-I/usr/include/xxx,甚至要創建一些文件夾的符號鏈接指向你主機的這些頭文件文件夾。即使這些,往往也未必成功,有些頭文件不同的系統架構,會不完全一樣甚至缺失。
交叉編譯一般無法使用主機的庫(so)文件
主機和目標機往往架構不同,庫完全不能使用
可能遇到主機和目標機架構相同的情況,比如你在intel64上編譯一套運行在intel64位手機的程序,但是庫兼容性的問題仍然存在。
最後結論:你這個問題,如果你是為了另一套機器(比如arm開發板編譯),那麼需要搞一套目標機的文件系統才能順利編譯。
對了,目標文件系統需要編譯了python和dev頭文件/庫,好多嵌入式設備裁剪的很厲害,都不用python。