編譯期會出現錯誤提示有哪些 自製交叉編譯工具鏈

2021-10-11 02:36:04 字數 3357 閱讀 1545

使用crosstool-ng來製作編譯工具鏈

安裝crosstool-ng:

建立目錄檔案

$ mkdir arm-linux-tools  

$ cd arm-linux-tools

$ wget
解壓原始碼

$ tar xvjf crosstool-ng-1.20.0.tar.bz2
配置並進行依賴檢測

依賴安裝:

1)gperf

2)bison

3)flex

4)texinfo

5)gawk

6)libtool

7)automake

8)libncurses5-dev

9)g++

原文命令:

$ cd crosstool-ng-1.20.0  

$ ./configure --prefix /home/eric/arm-linux-tools/crosstool-install/

注:此處將會出現libtool找不到錯誤,修改命令新增路徑引數

修改命令:

$ cd crosstool-ng-1.20.0  

$ ./configure --prefix /home/x/arm-linux-tools/crosstool-install/ --with-libtool=usr/share/libtool

編譯並安裝

$ make
注:如果編譯時出現錯誤

直接修改kconfig/zconf.hash.c +163 原始碼中的size_t為unsigned int

$ make install
配置環境變數

$ export path=$path:/home/eric/arm-linux-tools/crosstool-install/bin/
檢查是否安裝成功

$ ct-ng -v
配置交叉編譯工具鏈:

將arm-unknown-linux-gnueabi資料夾複製到crosstool-build目錄下

$ cd samples  

$ cp -r arm-unknown-linux-gnueabi/ ../../crosstool-build/

將預設配置檔案拷貝到crosstool-build目錄下並改名為.config

$ cd ~/arm-linux-tools/crosstool-build  

$ cp arm-unknown-linux-gnueabi/crosstool.config .config

執行ct-ng menuconfig進入配置介面進行配置

$ ct-ng menuconfig
1)設定原始碼包路徑和交叉編譯器的安裝路徑

1)原始碼包路徑:設定paths and misc options下的local tarballs directory為/home/eric/arm-linux-tools/src

2)交叉編譯器的安裝路徑:設定paths and misc options下的prefix directory為/home/eric/arm-linux-tools/x-tools/$

(2)修改交叉編譯器針對的架構

1)設定target options下的architecture level為armv4t

2)設定target options下的emit assembly for cpu為arm9tdmi

3)設定target options下的tune for cpu為arm920t

(3)設定編譯時的並行程序數

1)設定paths and misc options下的number of parallel jobs為4

這個數值不宜過大,應該為cpu核心數量的兩倍。

(4)設定編譯器字首

1)設定toolchain options下的tuple's vendor string為s3c2440,這樣生成的編譯器的字首就是arm-s3c2440-linux-gnueabi-

安裝termcap

$ cd /tmp  

$ wget

$ tar xvzf termcap-1.3.1.tar.gz

$ cd termcap-1.3.1

$ ./configure --prefix=/usr

$ make

$ make install

編譯在crosstool-build目錄下執行以下命令進行編譯

編譯過程中,在安裝到cross-gdb時,出現configure: error: expat is missing or unusable的錯誤,安裝libexpat1-dev即可。

編譯過程中,出現g++: internal error: killed (program cc1plus)的錯誤,嘗試著將可用記憶體加大。

在進行ct-ng build時,網上教程都是成功的,然而作者總是出現安裝binutils錯誤:

配置環境變數

$ echo "path=$path:/home/eric/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/bin" >> ~/.bashrc  

$ source ~/.bashrc

確認安裝完成

$ arm-s3c2440-linux-gnueabi-gcc -v
編譯成功後的交叉編譯器路徑

(1)編譯器路徑:/home/eric/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/bin

(2)庫檔案路徑:/home/eric/arm-linux-tools/x-tools/arm-s3c2440-linux-gnueabi/arm-s3c2440-linux-gnueabi/lib

小甜餅吃多了會出現404錯誤

好了,並且我還自認為這是乙個比較標新立異的想法。但是,資料量很大,cookie的大小 數量都是有限的,於是我去網上看了一下cookie的具體限制 internetexplorer現在 cookie 限制為每個網域名稱50個 firefox 每個網域名稱 cookie 限制為50個。opera 每個網...

js傳遞太大數字會出現錯誤onclick函式

我在專案中,使用onclick函式傳遞訂單號,這個訂單號有17位長,傳遞的時候明明傳遞的是正確的數值,可是在谷歌瀏覽器中f12看一下,數值總會加一,即數值會變化,原來js對於數字的精度僅能達到16位數,超過就會出現精度錯誤,即數值會發生改變。這個是乙個大坑,因為如果是16位一下,就正常。我原來的寫法...

mac 安裝 swoole 可能會出現的錯誤

2018年4月,由於homebrew的變動,導致無法使用brew install的方式安裝php的擴充套件,現在改為用pecl安裝,pecl安裝swoole的方法為 pecl install swoole可能出現的報錯及解決方法解決方法1 cp r usr local opt openssl inc...