armlinux編譯
1
gcc
-g
test_gdb.c
-o
test_gdb
只有加入選項-g才能被gdb調試。
使用quit命令,輸入:
quit
即可。
list:顯示10源代碼,再次輸入該命令顯示接下來的10行。
list1,10:顯示從第一行到第10行的代碼。
在gdb中最簡單的設置方式是:break
行號
在這一行設置斷點。比如break9
會在代碼的第9行設置斷點。當程序執行到第9行會自動暫停,此時,第9行代碼還未執行。
你也可以使用:break
函數名
的方式在某個函數處設置斷點,程序運行到這個函數內的第一條語句處會自動暫停。
使用命令:clear
行號
即可刪除。
兩種命令:next和step。兩者均可以一句一句的查看語句。但不同的是,next命令將函數調用看作一條語句,而step則會進入函數,一步步的執行函數內的代碼。
輸入命令:continue。它可以讓程序繼續運行,直到程序運行完畢或者遇到下一個斷點為止。
11.當程序在斷點處暫停執行時,如何查看當前變數的值?
使用print命令。
這時我總結的linux
gdb,希望對你有幫助
㈡ arm-linux-gcc怎麼編譯文件
可以使用gcc命令進行編譯:
例子:
gcc -o hello hello.c #在這里hello.c是源文件,hell為目標輸出文件
通過編譯器編譯主要是經過:預處理,匯編,編譯和鏈接的過程;
㈢ 怎樣建立arm linux交叉編譯環境
「redhat9的內核2.4,我也升級到2.6了。」
這樣你的系統是不穩定的,在你學習的過程中會有很多很莫名其妙的問題出現的,用的話還是用你的2.4內核吧,要不,你直接用你內核是2.6的linux發行版,比如fedora 或者ubuntu等等。
首先前提是你有arm-linux-gcc的編譯工具。這套工具不同的版本用途不大一樣,有些用來編譯內核,有些用來編譯Qt應用程序。
關於Redhat 9.0裡面建立一個交叉編譯環境的方法如下:
把你的編譯工具(以下以arm-linux-gcc-2.95.3.tgz為例)放置某目錄。
1、解壓:tar -zxvf arm-linux-gcc-2.95.3.tgz
會在當前目錄產生上述包的解壓文件,在這個目錄裡面找到bin目錄,把這個bin目錄的絕對路徑記錄下載。
2、然後添加交叉編譯工具進入系統的環境變數:
gedit /root/.bashrc
編輯/root/.bashrc文件,在最後一行加上
export PATH=$PATH:xxx
xxx是你1、步驟的bin的路徑。接著重啟或者注銷一下就可以了。
重啟完成後打開終端輸入arm-linux-gcc -v 看看有沒有輸出相關的版本信息。
註:上述操作是以root身份登錄系統的。
祝你好運!!
㈣ 如何編譯arm linux的go
Golang也就是Go語言,現在已經發行到1.4.1版本了,語言特性優越性和背後Google強大靠山什麼的就不多說了。Golang的官方提供了多個平台上的二進制安裝包,遺憾的是並非沒有發布ARM平台的二進制安裝包。ARM平台沒辦法直接從官網下載二進制安裝包來安裝,好在Golang是支持多平台並且開源的語言,因此可以通過直接在ARM平台上編譯源代碼來安裝。整個過程主要包括編譯工具配置、獲取Golang源代碼、設置Golang編譯環境變數、編譯、配置Golang行環境變數等步驟。
註:本文選用樹莓派做測試,因為樹莓派是基於ARM平台的。
1、編譯工具配置
據說下個版本的golang編譯工具要使用golang自己來寫,但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:
1.1 在Ubuntu或Debian平台上可以使用sudo apt-get install gcc libc6-dev命令安裝,樹莓派的RaspBian系統是基於Debian修改的,所以可以使用這種方法安裝。
1.2 在RedHat或CentOS 6平台上可以使用sudo yum install gcc libc-devel命令安裝。
安裝完成後可以輸入 gcc --version命令驗證是否成功安裝。
2、獲取golang源代碼
2.1 直接從官網下載源代碼壓縮包。
golang官網提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:https://storage.googleapis.com/golang/go1.4.1.src.tar.gz
2.2 使用git工具獲取。
golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個方法,因為以後可以隨時獲取最新的golang源代碼。
2.2.1 首先確認ARM平台上已經安裝了git工具,可以使用git --version命令確認。一般linux平台都安裝了git,沒有的話可以自行安裝,不同平台的安裝方法可以參考:http://git-scm.com/download/linux
2.2.2 克隆遠程golang的git倉庫到本地
在終端cd到你想要安裝golang的目錄,確保該目錄下沒有名為go的目錄。然後以下命令獲取代碼倉庫:
git clone https://go.googlesource.com/go
大陸地區可能會獲取失敗,在不翻牆的情況下我試了幾次都沒成功,原因大家都懂的。好在google已經將golang也託管到github上面,所以也可以通過下面命令獲取:
git clone https://github.com/golang/go.git
視網路情況,下載可能需要不少時間。我2M的帶寬花了將近兩個小時才下載完,雖然整個項目不過幾十兆= =
下載完成後,可以看到目錄下多了一個go目錄,裡面即為golang的源代碼,在終端上執行cd go命令進入該目錄。
執行下面命令檢出go1.4.1版本的源代碼,因為現在已經有新的代碼提交上去了,最新的代碼可能不是最穩定的:
git checkout go1.4.1
至此,最新1.4.1發行版的源代碼獲取完畢
3、設置golang的編譯環境變數
主要有GOROOT、GOOS、GOARCH、GOARM四個環境變數需要設置,先解釋四個環境變數的意義。
3.1 GOROOT
主要代表golang樹結構目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設置這個環境變數,因為編譯的時候默認會以go目錄下src子目錄中的all.bash腳本運行時的父目錄作為GOROOT的值。為了保險起見,可以直接設置為go目錄的路徑。
3.2 GOOS和GOARCH
分別代表編譯的目標系統和平台,可選值如下:
GOOS GOARCH
darwin 386
darwin amd64
dragonfly 386
dragonfly amd64
freebsd 386
freebsd amd64
freebsd arm
linux 386
linux amd64
linux arm
netbsd 386
netbsd amd64
netbsd arm
openbsd 386
openbsd amd64
plan9 386
plan9 amd64
solaris amd64
windows 386
windows amd64
需要注意的是這兩個值代表的是目標系統和平台,而不是編譯源代碼的系統和平台。樹莓派的RaspBian是linux系統,所以這些GOOS設置為linux,GOARCH設置為arm。
3.3 GOARM
表示使用的浮點運算協處理器版本號,只對arm平台有用,可選值有5,6,7。如果是在目標平台上編譯源代碼,這個值可以不設置,它會自動判斷需要使用哪一個版本。
總結下來,在樹莓派上設置golang的編譯環境變數,可編輯$HOME/.bashrc文件,在末尾添加下面內容:
export GOROOT=你的go目錄路徑
export GOOS=linux
export GOARCH=arm
編輯完後保存,執行source ~/.bashrc命令讓修改生效。
4、編譯源代碼
環境變數配置完成自後就可以開始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個腳本(另外還有兩個all.bat和make.bat腳本適用於window平台)。編譯實際上就是執行其中一個腳本,兩者的區別在於all.bash在編譯完成後還會執行一些測試套件。如果希望只編譯不測試,可以運行make.bash腳本。使用cd命令進入go下src目錄,執行./all.bash或者./make.bash命令即可開始編譯。由於硬體情況不同,編譯耗費的時間不同。在我的B型樹莓派編譯過程花費了將近半個小時,編譯完成後執行的測試套件又花費了差不多一個小時,總共花費了一個半小時左右。
5、配置golang運行環境變數
編譯完成後,go目錄下會生成bin目錄,裡面就是go的運行腳本。為了以後使用方法,可以將這個bin路徑添加到PATH環境變數中。同樣編輯~/.bashrc文件,因為前面設置過GOROOT環境變數指向go目錄了,所以只需要在末尾加上
export PATH=$PATH:$GOROOT/bin
保存後同樣執行source ~/.bashrc命令讓環境變數生效。
至此,golang源代碼編譯安裝成功。執行go version應該就能看到當前golang的版本信息,表示編譯安裝成功。
㈤ 如何建立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 交叉編譯怎麼使用
交叉編譯器通常以 arm-none-linux-gnueabi.tar.bz2 這樣的名稱發布(不同廠家的不同開發平台,交叉編譯工具鏈的實際名稱可能有所差別,請以實際為准),解壓命令: vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2 如果希望解壓...
㈦ arm-linux-gcc編譯問題
.hex是16進制.bin是2進制的.axf我忘了。都可以燒到目標板ROM里了。這些其實是不同公司制定的編碼格式,好像ibm,摩托都有自己的一種,後來有些就通用了。不管你是什麼格式少小區,晶元最終知道的還是機器碼。
㈧ arm-linux-gcc不能編譯
因為你這個編譯器不支持EABI匯流排協議,再重新載一個支持的就可以了
㈨ 一個arm-linux-gcc編譯時的問題
file /usr/local/arm/2.95.3/arm-linux/lib/libminigui.so
ls -l /usr/local/arm/2.95.3/arm-linux/lib/libminigui.so
貼出兩個命令的結果。
自己做個交叉編譯器很難么?還用什麼太古時代的 gcc 2.95.3 。