編譯ARM GCC要點

2021-05-24 12:38:26 字數 669 閱讀 6065

準備

需要準備binutil包,需要g++支援的需要準備g++包。gcc core當然是必備的。編譯最新的4.5.0版需要準備另外一些包,他們在config gcc的時候會說明,都拿下來編譯即可。另外需要準備newlib,它很小,適合手機。

要點一 不可以在編譯目錄下面config,make

為了做到要點一,我們需要mkdir另外乙個子目錄。如

mkdir build

cd build

../configure ...

要點二 把需要的包用symlink-tree工具鏈結入編譯目錄

比如,編譯binutil同時需要編譯gcc,gcc,newlib。假定這時候當前目錄在build下面,則使用一下命令

../symlink-tree ../../newlib

../symlink-tree ../../gcc-4.5.0 …

要點三 用選項改變安裝的預設路徑,目標架構,需要的包和軟浮點選項

比如你想要安裝在/opt/armtoolchain 目標架構是arm-elf,需要newlib包,需要軟浮點,

而且當前目錄在build下面,那麼,

../configure –prefix=/opt/armtoolchain –target=arm-elf –with-newlib –with-float=soft

c 編譯要點

參見 g main test.cpp l.lib lenglish spelling correct i.inc o main 執行時動態庫路徑設定 1 動態庫放在如下路徑 lib或 lib64 usr lib或 usr lib64 2 設定鏈結路徑 export ld library path l...

ARM GCC浮點相關總結

名字解釋 編譯版本問題 gcc 4.0 為分界線 4.0版本以下,由於採用oabi介面,其對浮點的支援不太好 4.0版本以上,採用了新的eabi介面,其對軟浮點和硬浮點的支援都比較好。考慮在4.0版本以下時,其支援的arm核心大多數沒有硬浮點,所以可以分析資料比較少,現在重點關注4.0版本以上。以下...

ARM GCC 庫打樁 符號替換

開發中,難免會遇到只有庫沒有原始碼的情況,除錯的時候,庫里的幾個函式又非常關鍵,那我們怎麼控制裡面的流程呢,並插入自己 這個時候就需要使用 gcc 工具重定義庫中的符號,然後在外面包裝該函式。乙個庫 lib test.a 庫中的函式 void hello test lib void 現在,我們想把庫...