?? gcc篇
字號:
############################################################################################################################################################################chapter 1 gcc的下載和安裝######################################################################################要學習GCC,首先當然是要學習安裝GCC了。。參考資料我選擇的是 :GCC The Complete Reference.其中的第二章有詳細的介紹。這里我還是要按照自己的理解將自己的操作寫下來,為以后的朋友跟進做備份。第一部分:失敗的開始(原因現在還沒找到,希望我成為老鳥的時候可以把問題解決,而不是繞過!)#############################################################################1-1..首先到 gcc.gnu.org網站上去下載一份GCC的源代碼,版本自己可以選擇,主要看你的考量了。我自己選擇的是4.1.0。嘿嘿。。因為太新了怕有BUG,太老了又覺得有些落后 。不過聽老大說,我們還在用2版和3版,不知道我用4版是不是算前衛了,哈哈。。。我把我的下載代碼放在了/home/reasil/里,其中realsil 是我安裝的LINUX的用戶號。你可以下載到你的LINUX下的任何一個地方了,不過要記住這個地址,這是下一步解壓時的源文件目錄。1-2.接著就要進入到我想要解壓的目標文件夾中進行解壓。我安裝參考書第二章的說明,進入到了/usr/local/src目錄下。這個目錄是我想要將GCC源文件解壓到的目的地址。所用的命令為:首先進入終端命令方式,然后敲入命令1:1:cd /usr/local/src 這樣進入我要解壓的目的文件的目錄中了接著我要把源文件解壓到/usr/local/src下。敲入命令2如下:2:sudo tar -xvzf /home/realsil/gcc-4.1.0.tar.gz命令端一陣刷屏。解壓的文件就到了目的地址/usr/local/src中了。不信自己ls 看下哦。NOTE:如果你下載的源代碼的地址不是/home/realsil的話,那上邊命令2的源地址你要相應改下了呢。另外sudo這個命令是因為我用的操作系統是Linux下的 ubuntu7.10版本,這個版本沒有root用戶,所以要操作系統部分的地址和目錄,需要加上sudo來申請root權限!1-3.接下來,要把解壓文件中的config文件提取,并配置。這里要自己建立一個存放config文件提取配置得到的文件的存放目錄。我建立了提取config文件的目錄在/opt/build.這里敲入命令三:3:mkdir /opt/build接著就進入該目錄,并輸入配置config的命令,其中configure中的options ( --perfix)是指定的安裝的GCC的執行文件群的地址目錄,我選在了/opt/usr/local處。敲入命令4,5:4:cd /opt/build5:sudo /usr/local/src/gcc-4.1.0/configure --prefix=/opt/usr/local配置動作完成后,配置文件群都在我發出指令操作的地方:/opt/build處。1-4然后我就在/opt/build目錄下發出編譯命令了,嘿嘿。敲入命令6:6.sudo make不幸的是。。。編譯沒有通過,在中間就退出了。。我看不出退出的原因。。。555~~可憐的小菜鳥 。。。不過沒關系。JUST DO IT。我換個GCC版本試下呢!下了4.2.4版本,也是完全版的,就是源代碼包含了C,C++,JAVA,ADA(一個超級清純的英國女子),FORTRAN多種語言編譯器的。。。步驟跟上邊一樣,只是把源文件換了下。結果。。又掛了。。。這時開始呼吸缺氧,關鍵問題是編譯中間突然退出的原因我看不懂阿。。也就是說我現在是一棒子買賣,一口氣編不過,我就沒招了!###################################################################第二部分 迂回成功!冷靜分析,決定放棄完全版的源碼包。從大一老師就說認識一個事物要從已知到未知,我記這句話7年了!所以,拆掉它!、2-1下載了4.24版本下,只有CORE的源碼包。然后重復上邊步驟:首先把/opt/build和/usr/local/src中的文件全部刪掉,從頭開始!sudo rm -rf /opt/buildsudo rm -rf /usr/local/src把源碼包gcc-core-4.2.4.tar.gz下到/home/realsil中。然后進入/usr/local/src文件目錄下發出命令1:1:sudo tar -xvzf /home/realsil/gcc-core-4.2.4.tar.gz2-2接著我再次進入/opt/build文件夾中,配置新的configure文件,發出命令2:2: sudo /usr/local/src/gcc-core-4.2.4/configure --prefix=/opt/usr/local2-3接著我就發出編譯GCC命令3:3:sudo make世界突然清靜了,我心跳的很厲害。。去打水 。。然后回來還在編譯。。。大概半個小時后,編譯結束。正常退出了!說明編譯通過,接著當然就是繼續追擊!2-4我發出最后的命令4:4:sudo make install然后進入到指定的編譯后的GCC的執行文件夾中/opt/usr/local中ls一下,ok!我看到了GCC執行文件了!2-5使用指令5:5:which gcc可以看到系統自帶的GCC4.1.3版本是在/usr/bin文件夾中,于是發出指令6:6: sudo ln -s /opt/usr/local/bin/gcc gcc424把編譯出來的GCC4.2.4的執行文件gcc定位到/usr/bin/gcc424其實還有lib文件也要重定位似乎,不過我今天暫時不做這個了。下邊就是繼續擴充!C++的編譯器我也想加進去。可能是第一步成功的小興奮,靈感來了。我居然花了一會功夫就猜出了步驟,試驗有波折,不過還是成功了!步驟如下:2-6首先把/opt/build和/usr/local/src中的文件全部刪掉,從頭開始!一開始沒有刪,直接解壓CORE和G++源碼包。結果就失敗了。。。但是也可能是我解壓是先解的下載的G++軟件包,后解壓的GCC-CORE。順序不對,不過前者的可能性最大!2-7刪除結束后。把 c++編譯器的源碼包gcc-g++-4.2.4.tar.gz下載到/home/realsil中然后進入/usr/local/src文件目錄下發出命令1,2:1:sudo tar -xvzf /home/realsil/gcc-core-4.2.4.tar.gz2:sudo tar -xvzf /home/realsil/gcc-g++-4.2.4.tar.gz這樣兩個源碼包中的代碼解壓到了/usr/local/src文件目錄下的gcc-4.2.4文件夾中。跟解壓單個的gcc源碼包是一樣的,解壓時已經自動把兩個包中的代碼合成為一個整體了,神奇阿!解下來的步驟跟編譯單獨的GCC源碼包差不多了。2-8接著我再次進入/opt/build文件夾中,配置新的configure文件,發出命令3:3: sudo /usr/local/src/gcc-4.2.4/configure --prefix=/opt/usr/ --enable-languages=c,c++這里的option ( --enable-languages=c,c++)是選擇編譯的語言為c和 c++兩種,這在configure時就要配置好!因為我舍不得刪掉剛才編譯的可執行文件夾/opt/usr/local中的文件,我這次讓編譯的可執行文件放在了/opt/usr文件夾下2-9 接下來就是編譯了,發出命令4:4:sudo make2-10經過半個多小時的編譯,成功完成退出,然后就發出命令5:5:sudo make instal然后等安裝好后,到/opt/usr文件夾下就可以看到編譯出的文件了,嘿嘿,和用core源碼包編譯出的文件相比多了g++和c++,下邊是這次編譯產生的可執行文件: g++ gccbug i686-pc-linux-gnu-c++ i686-pc-linux-gnu-gcccpp gcc gcov i686-pc-linux-gnu-g++ i686-pc-linux-gnu-gcc-4.2.4這次GCC編譯就這樣告一段落了,也許最近有興致再試下整體編譯,就是支持多語言的源碼包的編譯。不過整個GCC的編譯步驟已經掌握了。下邊的精力應該會放在GCC的使用,學習了GCC,接下來還有MAKE和GDB兩個大東西!我的天阿!!################################################################################################################################################################################chapter 2 GCC的學習以 GCC the complete reference 為主要參考資料#######################################################################################1 -1 在完成了GCC的下載和安裝后,可以開始GCC的應用學習了。要用好GCC,其實涉及的知識非常寬廣。包括了編譯(complier)和鏈接(linker)。makefile和autoconfig的使用,我的理解也就是軟件工程的結構組織工具。還有GDB進行調試。在我們的嵌入式平臺上,還要涉及交叉編譯(cross-compile)感覺這一層已經涉及到匯編器以及硬件平臺了。有了開發平臺,往下才是嵌入式平臺的BOOTLOADER,板極支持包(BSP)以及操作系統(OS)以及上邊的API和AP。每個部分里邊都有很多的門道。這在讀書的時候就有感觸!曾經是打算要把這些部分逐一解決掉,但是陰差陽錯吧,最后直到來公司,我還是沒有做。這次下定決心要把這塊整個有個解決,不論花多少年。這都是命!繁華世界轉了一圈,還是回到了起點。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -