1. 程式人生 > >Linux--配置交叉編譯工具鏈

Linux--配置交叉編譯工具鏈

配置交叉編譯工具鏈

安裝

我的交叉編譯軟體包為arm-2009q3.tar.bz2,首先在/usr/local目錄下建立arm目錄,將軟體包解壓到該目錄下。linux中所有目錄性質都是一樣的,裝在哪個目錄下都是可以的,為了方便管理,一般軟體之類的都裝在/usr目錄下。

mkdir /usr/local/arm
tar -jxvf arm-2009q3.tar.bz2 -C /usr/local/arm/

匯出環境變數

在Linux中,為了能讓Shell終端能夠自動找到編譯器的路徑,需要新增環境變數。可以使用export命令增加環境變數。

export PATH=/usr/local/arm/arm-2009q3/bin:$PATH

export匯出的環境變數只在當前終端有效,此時開啟另外一個終端就沒用了。解決辦法就是在~/.bashrc裡面新增上面這條指令(每一個終端被開啟,.bashrc都會自動被執行)。有一點要注意的是 .bashrc 是針對某一個使用者的,因為我一般使用的是root使用者,所以我需要配置/root/.bashrc 檔案,如果我切換到了普通使用者,那麼之前的配置是沒用的,需要重新配置普通使用者。

建立符號連結

為了方便使用,一般要建立符號連結,看起來也更直觀。因為可執行程式非常多,一條條指令單獨地去執行非常麻煩,所以使用指令碼來建立。vi mk.sh後,將以下內容新增到檔案中,最後source mk.sh執行就OK了。 執行的時候如果出了錯誤,那麼應該是換行的問題。在windows中按下Enter會寫入\r\n(但是windows讀取檔案時讀出來的是\n,很智慧的去掉了\r,微笑),Linux中按下Enter會寫入\n。 windows下面編輯的指令碼貼上到Linux系統後,要做一些額外的修改把那個多餘的\r刪掉才行;或者乾脆直接在Linux下面編輯指令碼。

ln -s arm-none-linux-gnueabi-addr2line  arm-linux-addr2line
ln -s arm-none-linux-gnueabi-gprof      arm-linux-gprof
ln -s arm-none-linux-gnueabi-ar         arm-linux-ar
ln -s arm-none-linux-gnueabi-ld         arm-linux-ld
ln -s arm-none-linux-gnueabi-as         arm-linux-as
ln -s arm-none-linux-gnueabi-nm         arm-linux-nm
ln -s arm-none-linux-gnueabi-c++        arm-linux-c++
ln -s arm-none-linux-gnueabi-objcopy    arm-linux-objcopy
ln -s arm-none-linux-gnueabi-c++filt    arm-linux-c++filt
ln -s arm-none-linux-gnueabi-objdump    arm-linux-objdump
ln -s arm-none-linux-gnueabi-cpp        arm-linux-cpp
ln -s arm-none-linux-gnueabi-ranlib     arm-linux-ranlib
ln -s arm-none-linux-gnueabi-g++        arm-linux-g++
ln -s arm-none-linux-gnueabi-readelf    arm-linux-readelf
ln -s arm-none-linux-gnueabi-gcc        arm-linux-gcc
ln -s arm-none-linux-gnueabi-size       arm-linux-size
ln -s arm-none-linux-gnueabi-gcc-4.4.1  arm-linux-gcc-4.4.1
ln -s arm-none-linux-gnueabi-sprite     arm-linux-sprite
ln -s arm-none-linux-gnueabi-gcov       arm-linux-gcov
ln -s arm-none-linux-gnueabi-strings    arm-linux-strings
ln -s arm-none-linux-gnueabi-gdb        arm-linux-gdb
ln -s arm-none-linux-gnueabi-strip      arm-linux-strip
ln -s arm-none-linux-gnueabi-gdbtui     arm-linux-gdbtui

最終結果

在這裡插入圖片描述