你得看這個編譯器的configure是啥
如果沒有特殊參數,默認都是動態編譯
沒有依賴的動態庫當然不能運行
❷ 如何以靜態鏈接方式交叉編譯linux上的軟體n
在編譯命令行中,將使用的靜態庫文件放在源文件後面就可以了。比如:
gcc -L/usr/lib myprop.c libtest.a libX11.a libpthread.a -o myprop
其中-L/usr/lib指定庫文件的查找路徑,編譯器默認在當前目錄下先查找指定的庫文件。
❸ 如何建立Linux下的ARM交叉編譯環境
首先安裝交叉編譯器,網路「arm-linux-gcc下載」就可以下載一個編譯器壓縮包。
把壓縮包放到linux系統中,解壓,這樣就算安裝好了交叉編譯器。
設置編譯器環境變數,具體方式網路。如打開 /etc/bash.bashrc,添加剛才安裝的編譯器路徑 export PATH=/home/。。。/4.4.3/bin:$PATH。這樣是為了方便使用,用arm-linux-gcc即可,不然既要帶全路徑/home/....../bin/arm-linux-gcc,這樣不方便使用。
編譯c文件。和gcc編譯相似,把gcc用arm-linu-gcc代替就是了。編譯出來的就可以放到arm上運行了。
❹ Linux系統中如何安裝交叉編譯器
交叉編譯器通常以 arm-none-linux-gnueabi.tar.bz2 這樣的名稱發布(不同廠家的不同開發平台,交叉編譯工具鏈的實際名稱可能有所差別,請以實際為准),解壓命令:
vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2
如果希望解壓到一個指定的目錄,可以先將 arm-none-linux-gnueabi.tar.bz2 壓縮包復制到目標目錄,然後進入目標目錄再運行解壓命令,也可以在任意目錄解壓,通過-C 指定目標目錄。假定希望解壓到「/home/ctools/」目錄,則命令如下:
vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2 -C /home/ctools/
在終端中添加環境變數,需要每次打開終端都設置,也很麻煩。可以考慮將設置的過程添加到系統配置文件中。/etc/profile 是系統全局的配置文件,在該文件中設置交叉編譯器的路徑,能夠讓登錄本機的全部用戶都可以使用這個編譯器。
打開終端,輸入「sudo vi /etc/profile」命令,打開/etc/profile 文件,在文件末尾添加:
export PATH=$PATH:/home/ctools/arm-2011.03/bin/
然後輸入「. /etc/profile」(點+空格+文件名),執行 profile 文件,使剛才的改動生效。如果沒有書寫錯誤,此時打開終端,輸入 arm-none-linux-gnueabi-,然後按鍵盤 TAB 鍵,同樣可以看到很多 arm-none-linux-gnueabi-開頭的命令。
這些周立功那邊很多的,不知道你有沒去看過。
❺ 如何使Linux在交叉編譯工具安裝配置並立即生效
#tar xvzf arm-linux-gcc-4.3.2.tar.gz -C /
(需要注意的是,在大寫字母後面有一個空格)
第二、利用vi編輯器打開/etc/profile文件,並在下面的位置中添加一句話:pathmunge /opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/bin
(注意:該處的/opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/bin根據各人的交叉編譯工具解壓後所存放的位置而不同)
#vim /etc/profile
# Path manipulation
if [ $EUID = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /opt/FriendlyARM//opt/FriendlyARM/toolschain/4.4.3/binfi第三、執行下列的命令即可是剛才的配置生效
#source /etc/profile
最後你就可以檢測自己的交叉編譯環境是否安裝成功。可以輸入下面的命令來檢查:
❻ 如何在32位linux下進行交叉編譯
1. 下載源文件、補丁和建立編譯的目錄 2. 建立內核頭文件 3. 建立二進制工具(binutils) 4. 建立初始編譯器(bootstrap gcc) 5. 建立c庫(glibc) 6. 建立全套編譯器(full gcc)
❼ linux嵌入式中的靜態交叉編譯是什麼意思
應該說是分為靜態和動態的
靜態就是把需要的庫文件也直接編譯進去
動態則是在需要的時候才去調用,本身不編譯進去
❽ 如何在linux虛擬機里安裝交叉編譯
安裝Arm-Linux交叉編譯器正確的方法:
首先我用的是天嵌自帶的交叉編譯器EABI-4.3.3_EmbedSky_20100610.tar.bz2,
1. 首先建一個存放交叉編譯器的目錄,我建的目錄的絕對路徑是:/opt/TQ (TQ就是我建的目錄)
2. 解壓EABI-4.3.3_EmbedSky_20100610.tar.bz2:
tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2
該文件解壓後,就會在TQ這個目錄中生成兩個目錄:opt,usr;
3. 添加環境變數 :
在/etc/profile中添加
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /opt/TQ/opt/EmbedSky/4.3.3/bin/
fi
添加完後 source /etc/profile 使他生效;
4. 在控制台執行以下命令:
cp /opt/TQ/opt/EmbedSky/4.3.3/bin /usr/local/arm
總結:第3步和第4步這兩步少了一步就會出現以下錯誤:
arm-none-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
經驗:若在解壓時 用下面的命令:
tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C/
就可以省去第四步
-C / :的意識是解壓到指定目錄,這里指根目錄,由於該壓縮包內部的目錄結構本身包含usr/local/arm,所以解壓到根目錄實際上就是把文件解壓到/usr/local/arm文件夾下。