首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Ubuntu 12.04.2 上使用 crosstool-NG 構建 ARM 交叉編譯工具鏈全記錄

     編輯:關於C語言

背景與選擇

作者嘗試在 Cygwin 下構建失敗後,決定安裝 Ubuntu 12.04.2 雙系統,直接在原生 Linux 環境下使用 crosstool-NG 製作 arm-unknown-linux-gnueabi 工具鏈。

環境準備

  1. 下載 crosstool-NG 源碼並解壓。
  2. 安裝構建依賴:
sudo apt-get update
sudo apt-get install bison flex gperf texinfo gawk libtool automake libncurses5-dev gcj-jdk g++

關鍵坑點:./configure --prefix 路徑不能設置在需要 root 權限的目錄(如 /etc),否則 make install 會報錯「不能以 root 用戶運行」。建議設置在用戶主目錄,如 $HOME/x-tools。

構建步驟

# 1. 配置、編譯、安裝 crosstool-NG 自身
./configure --prefix=$HOME/x-tools/ct-ng
make
make install

# 2. 將 ct-ng 加入 PATH
echo 'export PATH="$PATH:$HOME/x-tools/ct-ng/bin"' >> ~/.profile
source ~/.profile

# 3. 創建構建目錄並選擇目標元組
mkdir -p $HOME/build-toolchain
cd $HOME/build-toolchain
ct-ng arm-unknown-linux-gnueabi

# 4. 開始構建(耗時 2-3 小時)
ct-ng build

常見錯誤與解決

錯誤現象解決命令
Missing: 'i686-pc-linux-gnu-gcj'sudo apt-get install gcj-jdk
Missing: 'i686-pc-linux-gnu-g++'sudo apt-get install g++
Retrieving 'linux-3.7.3' 卡住網絡下載較慢,耐心等待或預先鏡像內核源
configure: error: expat is missingsudo apt-get install libexpat1-dev

驗證與使用

構建成功後,工具鏈位於 $HOME/x-tools/arm-unknown-linux-gnueabi/bin。永久添加到 PATH:

echo 'export PATH="$PATH:$HOME/x-tools/arm-unknown-linux-gnueabi/bin"' >> ~/.profile
source ~/.profile

# 測試
arm-unknown-linux-gnueabi-gcc --version

心得

  • 原生 Linux 環境構建工具鏈比 Cygwin 穩定得多。
  • crosstool-NG 的菜單配置(ct-ng menuconfig)可視化定製內核版本、glibc 版本、線程庫等,極其強大。
  • 構建過程網絡下載較多,建議預備鏡像源或使用 ct-ng saveconfig 保存配置離線構建。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved