Linux--配置交叉編譯工具鏈
阿新 • • 發佈:2018-12-10
配置交叉編譯工具鏈
安裝
我的交叉編譯軟體包為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