• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-167  評論-8  文章-0  trackbacks-0
            沒記錯的話現在gcc的最新版本是4.2.2,但是某些軟件的編譯還要用到gcc4之前版本中的一些特性,某些是gcc4所不支持的,所以必須要用 gcc3.X或者gcc2.9.X。現在的Linux發行版一般都安裝了gcc4.x,同時也會保留gcc3.x,一般不需要用戶自己安裝。如果系統沒有 或者已損壞,就不得不自己動手了~本文以在Redflag Linux 6上安裝gcc3.4.6為例,介紹了gcc的安裝過程。

            安裝之前,首先要確保系統中有cc或者gcc等編譯器,并且是可用的。還要把環境變量CC指向你系統上的編譯器。如果系統上沒有編譯器,則不能編譯安裝 gcc源碼,可以選擇別人做好的gcc二進制安裝包(RPM,DEB等)直接安裝。本文介紹的是以源代碼形式提供的gcc軟件包的安裝過程,此安裝過程同 樣適用于其它Linux和Unix系統。

            系統上原來的gcc編譯器可能是把gcc等命令文件、庫文件、頭文件等分別存放到系統中的不同目錄下的。但是由于gcc沒有uninstall功能,所以建議把gcc的所有文件安裝到同一目錄下。安裝步驟如下:

            1. 下載

            在gcc網站上(http://gcc.gnu.org/)或者通過百度一下找到下載資源。目前gcc的最新版本為 4.2.2,我用的是3.4.6。可供下載的文件一般有兩種形式:gcc-3.4.6.tar.gz和gcc-3.4.6.tar.bz2,二者只是壓縮 格式不一樣,內容都是一樣的,隨便選一個下載就行了。在這里提供一個國內的下載站點:
                   ftp://linuxforum.net/ftp.gcc.gnu.org/

            2. 解壓縮

                   你可以直接在下載的文件上點右鍵解壓文件。或者可以根據你所下載的文件,在命令行下選擇下面相應的命令解壓縮:
                   tar xzvf gcc-3.4.6.tar.gz
            或者
            bzcat gcc-3.4.6.tar.bz2 | tar xvf -

            解壓生成的gcc-3.4.6這個目錄我們稱為源目錄,用${srcdir}表示。下文中出現的${srcdir}應該用真實的路徑來替換。
            在${srcdir}/INSTALL目錄下有詳細的gcc安裝說明,內容實在是過于詳細,以致于我懶得看了。如果你有耐心,可以安裝安裝說明自己安裝。如果你也懶得看,那就繼續看下面我的安裝過程。

            3. 建立目標目錄

            目標目錄我們用${objdir}表示,用來存放編譯出來的文件gcc。最好不要把編譯生成的文件放在源目錄${srcdir]中,那樣感覺有點亂。我們把這些文件存放在另外一個目錄中,注意不能是${srcdir}的子目錄。
            在這里,我建了一個與源目錄${srcdir}同級的目錄,叫 gcc-build 。當然這目錄的名字可以隨便取。
            mkdir gcc-build
            cd gcc-build
            下面的操作主要是在目標目錄 ${objdir} 下進行,同樣的,在下面的命令中用你的真實路徑替換${objdir}。

            4. 配置

            配置的目的是決定將gcc編譯器安裝到什么地方(${destdir}),支持什么語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。

            配置是通過執行${srcdir}下的configure來完成的。其命令一般格式為:

            ${srcdir}/configure --prefix=${destdir} [其它選項]

            在這里,我要把gcc3.4.6安裝到/usr/local/gcc-3.4.6目錄下,${destdir}就表示/usr/local/gcc-3.4.6。

            下面是我安裝的時候選擇的配置:

            ../gcc-3.4.6/configure --prefix=/usr/local/gcc-3.4.6 --enable-threads=posix --disable-checking --host=pc-redflag-linux --with-system-zlib --enable-languages=c,c++,objc
            其中--host=pc-redflag-linux因為我安裝的時候用的紅旗Linux,根據自己使用的系統改掉即可。--enable-threads=posix 是使編譯使用posix多線程模型,從網上找的有人說此項為Linux系統默認,按說應該不會有問題。網友qiu建議將--enable-threads=posix的posix改為single,并且去掉--host=pc-redflag-linux,這樣會更加普遍適用于不同的機型,各位酌情處理。

            其中選項的具體作用請參照gcc提供的說明(gcc-3.4.6/INSTALL/configure.html)。
                   這里要注意一點,--disable-checking最好帶著,我安裝的時候enable-checking時,configure通過后在下面的編譯 過程中,程序會check所有gcc自帶的編譯器,在check Ada的時候出錯了,導致安裝失敗。如果你夠牛,可以自己搞定最好,如果不行就不要check了,反正也沒大有影響。

            5. 編譯

            執行make命令。這個過程比較耗費時間,大概10來分鐘的樣子。
                   PS:我cpu PM750,1.86MHz,紅旗是在虛擬機里裝的。。

            6. 安裝

            執行下面的命令會把編譯好的文件拷貝到${destdir}目錄中(根據你設定的路徑,可能需要管理員的權限,如果你用的root登錄那就沒問題,如果不是那就根據自己的系統使用root權限):

            make install

                文件拷完了gcc3.4.6安裝過程也就完成了。

            6. 其它設置

            GCC 3.4.6的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在 lib下、頭文件在include下等。
            6.1 gcc、g++的設置

            which gcc

            在我的系統上,上述命令顯示:/usr/bin/gcc。所以系統原來的gcc命令在/usr/bin目錄下。我們可以把gcc 3.4.6中的gcc、g++等命令在/usr/bin目錄下分別做一個符號連接:

            % cd /usr/bin
            % ln -s ${destdir}/bin/gcc gcc34
            % ln -s ${destdir}/bin/g++ g++34

            這樣,就可以分別使用gcc34、g++34、gcj34來調用GCC 3.4.6的gcc、g++來編譯程序了。與此同時,系統中原來帶有的其版本的gcc編譯器中的gcc、g++等命令仍然可以使用。

            6.2 庫路徑的設置

            將${destdir}/lib路徑添加到環境變量LD_LIBRARY_PATH中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變量了。

            如果GCC 3.4.6安裝在/usr/local/gcc-3.4.6目錄下,在RedFlag Linux下可以直接在命令行上執行或者在文件/etc/profile中添加下面一句:

            setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.6/lib:$LD_LIBRARY_PATH

            至此,我們的gcc就安裝成功了,可以隨便寫個helloworld試試~~
            posted on 2009-12-06 13:38 老馬驛站 閱讀(903) 評論(0)  編輯 收藏 引用 所屬分類: linux
            国产麻豆精品久久一二三| 久久中文字幕人妻丝袜| 久久99毛片免费观看不卡| 国产午夜精品理论片久久影视| 久久99精品久久久久久水蜜桃| 亚洲国产成人精品女人久久久| 少妇久久久久久久久久| 久久九九久精品国产免费直播| 久久精品无码一区二区三区日韩| 久久久久久国产精品无码下载| 青草影院天堂男人久久| 国产A级毛片久久久精品毛片| 久久精品国产91久久综合麻豆自制 | 无码8090精品久久一区| 久久久久亚洲精品天堂| 久久久久亚洲AV综合波多野结衣| 无码精品久久久久久人妻中字| 久久国产精品视频| 久久精品国内一区二区三区| 伊人久久大香线蕉AV色婷婷色| 国产高潮国产高潮久久久91 | 青青草原1769久久免费播放| 久久久国产打桩机| 久久久精品国产Sm最大网站| 久久精品国产精品国产精品污 | 无码人妻少妇久久中文字幕蜜桃| 久久亚洲天堂| 老司机午夜网站国内精品久久久久久久久| 2021久久国自产拍精品| 亚洲AV无一区二区三区久久| 久久久久久精品无码人妻| 久久这里的只有是精品23| 青青草国产97免久久费观看| 久久久91人妻无码精品蜜桃HD| 99久久伊人精品综合观看| 香港aa三级久久三级| 色综合久久最新中文字幕| 久久久精品一区二区三区| 中文字幕成人精品久久不卡| 久久国产精品久久国产精品| 久久久久综合网久久|