導航:首頁 > 操作系統 > gcc與armlinux

gcc與armlinux

發布時間:2022-07-29 20:24:57

Ⅰ 關於arm-linux-gcc

首先運行一下arm-linux-gcc看能運行編譯器嗎,不能就把arm-linux-gcc安裝錄像添加到PATH環境變數。再有看一下kernel的Makefile里工具鏈的前綴是不是跟你實際安裝的工具鏈一致。

Ⅱ 可不可以用arm-linux-gcc編譯gcc編譯後的執行文件

不可以,arm-linux-gcc編譯生成的可執行文件是在
嵌入式linux
下運行的,是不能再編譯已經編譯過生成的執行文件的。一般說來的gcc是linux下的
編譯器
。兩者有區別。

Ⅲ 如何製作arm-linux-gcc編譯工具

一、下載源文件
源代碼文件及其版本:
binutils-2.19.tar.bz2, gcc-core-4.4.4.tar.bz2 gcc-g++-4.4.4.tar.bz2 Glibc-2.7.tar.bz2 Glibc-ports-2.7.tar.bz2 Gmp-4.2.tar.bz2 mpfr-2.4.0.tar.bz2mpc-1.0.1.tar.gz Linux-2.6.25.tar.bz2 (由於我在編譯出錯的過程中,根據出錯的信息修改了相關的C代碼,故而沒有下載相應的補丁)
一般一個完整的交叉編譯器涉及到多個軟體,主要包括bilinguals、cc、glibc等。其中,binutils主要生成一些輔助工具;gcc是用來生成交叉編譯器,主要生成arm-linux-gcc交叉編譯工具,而glibc主要提供用戶程序所需要的一些基本函數庫。

二、建立工作目錄
編譯所用主機型號 fc14.i686,虛擬機選的是VM7.0,Linux發行版選的是Fedora9,
第一次編譯時用的是root用戶(第二次用一般用戶yyz), 所有的工作目錄都在/home/yyz/cross下面建立完成,首先在/home/yyz目錄下建立cross目錄,然後進入工作目錄,查看當前目錄。命令如下:

創建工具鏈文件夾
[root@localhost cross]# mkdir embedded-toolchains
下面在此文件夾下建立如下幾個目錄:
setup-dir:存放下載的壓縮包;
src-dir:存放binutils、gcc、glibc解壓之後的源文件;
Kernel:存放內核文件,對內核的配置和編譯工作也在此完成;
build-dir :編譯src-dir下面的源文件,這是GNU推薦的源文件目錄與編譯目錄分離的做法;
tool-chain:交叉編譯工具鏈的安裝位;
program:存放編寫程序;
doc:說明文檔和腳本文件;
下面建立目錄,並拷貝源文件。
[root@localhost cross] #cd embedded- toolchains
[root@localhost embedded- toolchains] #mkdir setup-dir src-dir kernel build-dir tool-chain program doc
[root@localhost embedded- toolchains] #ls
build-dir doc kernel program setup-dir src-dir tool-chain
[root@localhost embedded- toolchains] #cd setup-dir
拷貝源文件:
這里我們採用直接拷貝源文件的方法,首先應該修改setup-dir的許可權
[root@localhost embedded- toolchains] #chmod 777 setup-dir
然後直接拷貝/home/yyz目錄下的源文件到setup-dir目錄中,如下圖:

建立編譯目錄:
[root@localhost setup-dir] #cd ../build-dir
[root@localhost build -dir] #mkdir build-binutils build-gcc build-glibc
三、輸出環境變數
輸出如下的環境變數方便我們編譯。
為簡化操作過程。下面就建立shell命令腳本environment-variables:
[root@localhost build -dir] #cd ../doc
[root@localhost doc] #mkdir scripts
[root@localhost doc] #cd scripts
用編輯器vi編輯環境變數腳本envionment-variables:[root@localhost scripts]
#vi envionment-variables
export PRJROOT=/home/yyz/cross/embedded-toolchains
export TARGET=arm-linux
export PREFIX=$PRJROOT/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export PATH=$PREFIX/bin:$PATH
截圖如下:
執行如下語句使環境變數生效:
[root@localhost scripts]# source ./environment-variables
四、建立二進制工具(binutils)
下面將分步介紹安裝binutils-2.19.1的過程。
[root@localhost script] # cd $PRJROOT/src-dir
[root@localhost src-dir] # tar jxvf ../setup-dir/binutils-2.19.1.tar.bz2
[root@localhost src-dir] # cd $PRJROOT/build-dir/build-binutils
創建Makefile:
[root@localhost build-binutils] #../../src-dir/binutils-2.19.1/configure --target=$TARGET --prefix=$PREFIX
在build-binutils目錄下面生成Makefile文件,然後執行make,make install,此過程比較緩慢,大約需要一個15分鍾左右。完成後可以在$PREFIX/bin下面看到我們的新的binutil。
輸入如下命令
[root@localhost build-binutils]#ls $PREFIX/bin

Ⅳ GCC能否運行於ARM-Linux環境下即GCC能否在ARM平台上運行

簡答:

gcc可以運行在arm-linux下。

gcc,可以在arm平台上運行。


詳解:

gcc,一般指的是,pc版,x86的平台,

用於嵌入式系統,比如arm的cpu,linux的系統下,是:

本來,一直就可以的,

而且有專門的屬於:

交叉編譯

簡答說就是:

在你的pc端,x86的cpu上,製作出一個交叉編譯器

一般叫做arm-linux-gcc

用此arm-linux-gcc去編譯你的程序

編譯出來的程序,可以運行在嵌入式開發板,比如arm的linux下


極其詳盡的解釋:

我剛寫個教程,你去看就知道了:

交叉編譯詳解

交叉編譯詳解
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html

此教程的主要內容包括:


等你看完了後,建議用crosstool-ng,或者是buildroot去自己編譯一個arm-linux的gcc。

Ⅳ gcc和arm-linux-gcc是什麼關系區別是什麼

gcc是linux系統下面用來將代碼編譯成一個可執行程序的手段。編譯出來的是適用於linux系統的可執行二進制文件。可執行程序其實就是一堆的0101二進制機器碼。這些機器碼代表什麼含義只有機器本身能理解。所以你用gcc編譯出來的可執行程序只有在linux系統下面可以運行。舉個例子你的可執行程序裡面有一句01011.這句在linux下面可能是吃飯的意思,但是在windows下面可能01011是撒尿的意思。那你說linux的可執行程序放在window下面能正常運行嗎?肯定不能嘛。你要的目的是吃飯,它幫你執行撒尿很顯然就不對了。同樣的可能01011在ARM下面的意思是睡覺。不同系統的機器碼含義是不一樣的。所以你在linux系統下面寫的代碼要怎樣才能在ARM系統上面跑呢。這就需要用到交叉編譯。arm-linux-gcc是什麼意思?就是告訴你的編譯器,我編寫的環境是linux,但是我希望生成的可執行程序是在arm上面跑的。這就是交叉編譯。編寫環境和執行環境分離的一種手段。

Ⅵ arm-linux-gcc 和gcc的問題

gcc 是需要針對目標架構設計的。
你這兩個輸出要是一樣,你就需要重裝 Linux 系統了。因為系統已經亂了。

arm-linux-gcc 是編譯到 arm CPU 架構的 gcc
直接 gcc 命令,是編譯到當前 CPU 架構的 gcc

他們不是一個東西,我的機器上有 4 個 gcc ,一個 x86-64 ,一個 mips64el 一個 mipsel ,一個 arm 。完全不沖突。
編譯軟體時,需要針對調用即可。
調用錯誤會導致編譯出來的程序無法運行。

一般軟體 ./configure 時設置好參數,make 時會自動調用對應的 gcc 。但有的軟體在 make 時需要附加參數,比如 kernel 就是這樣。

閱讀全文

與gcc與armlinux相關的資料

熱點內容
手機端app的掃碼功能在哪裡 瀏覽:223
少兒編程中小班英語教案 瀏覽:424
鎖屏密碼加密手機怎麼解除 瀏覽:193
linuxlostfound 瀏覽:132
征途伺服器ip地址 瀏覽:328
git提交代碼命令行 瀏覽:163
什麼叫瀏覽器伺服器結構 瀏覽:155
於謙聊天哪個app 瀏覽:447
小鵬汽車nlp演算法工程師薪資 瀏覽:879
代碼加密與隱藏 瀏覽:647
fordfulkerson演算法 瀏覽:350
京東熱app在哪裡可以下載 瀏覽:874
彩報圖書app哪個好 瀏覽:301
新君威20壓縮比 瀏覽:186
手機php整站 瀏覽:915
windows路由跳轉命令 瀏覽:472
量子遺傳演算法程序 瀏覽:222
各編程語言自帶軟體庫 瀏覽:184
編程最少學習多少 瀏覽:403
禪海蠡測語譯pdf 瀏覽:189