• <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>

            zelsazgh

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              2 Posts :: 0 Stories :: 9 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(15)

            我參與的團(tuán)隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            在網(wǎng)上,編譯GCC的方法有很多,大部份人都推薦在CYGWIN環(huán)境下進(jìn)行交叉編譯,這樣可以可以少遇到許多困難,但是使用CYGWIN時往往需要編譯許多其它相關(guān)工具才行,對于我這個懶人來說,真是不太現(xiàn)實,所以我開始了我用MINGW編譯之旅。
            在國外似乎很早就有人開始用MINGW嘗試編譯GCC了,不過如你根據(jù)它的方法的話,依我試驗后的經(jīng)驗不一定能夠成功的編譯出來,因為有許多提前工作,在那文檔中并沒有列出。下面將以GCC4.2.2為例進(jìn)行
            前期準(zhǔn)備工作:
            一、準(zhǔn)備一個已編譯好的GCC,我用的是TDM的GCC4.2.1(當(dāng)然用它的GCC4.2.2也可以)
            二、安裝MSYS和它的工具包,在MSYS安裝完成以后,一般會要求指定一下你的GCC安裝路徑,按要求填寫即可,萬一你想改變了你可以在MSYS文件夾中的 /etc/fstab下進(jìn)行修改。最后要說的是你可能需要從MINGW的官網(wǎng)上下載最新MAKE和MAKEINFO這個兩個程序,后面我將會給出為什么需要它們的原因
            三、安裝mingw-core、mingw-win32api、mingw-binutil
            四、編譯GMP與MPFR,根據(jù)測試GMP雖然有了4.2.2版本,但是在WIN環(huán)境下無法通過編譯(有高人幫我解決更好了),但是GMP4.2.1依然可以編譯使用,為編譯 GCC4.2.2所以MPFR必需要求使用MPFR4.2.2,在msys環(huán)境下,老慣例的三步走configre,make,make install就可以了,將編譯好的相關(guān)文件復(fù)制到GCC的文件夾中,當(dāng)然你可以在GCC編譯時另外指定路徑,不過會變得麻煩些
            五、安裝GNUWIN32組件
            bison into
            http://gnuwin32.sourceforge.net/down...on-bin-zip.php
            http://gnuwin32.sourceforge.net/down...on-dep-zip.php

            flex
            http://gnuwin32.sourceforge.net/down...ex-bin-zip.php

            libtool
            http://gnuwin32.sourceforge.net/down...ol-bin-zip.php

            libiconv
            http://gnuwin32.sourceforge.net/down...nv-bin-zip.php
            http://gnuwin32.sourceforge.net/down...nv-dep-zip.php

            下一步編譯:

            其實正常來說這一步可以忽略不說,但是我就是不理解為什么在WIN環(huán)境下會變得如此的復(fù)雜?

            下面是我的configure執(zhí)行腳本

            #!/bin/sh
            PATH=/f/GCC/bin:/f/msys/1.0/bin:$PATH
            ../../configure --prefix=/mingw --enable-languages=c,c++,fortran,objc,obj-c++,treelang,java --disable-nls --disable-werror --disable-win32-registry --enable-sjlj-exceptions --enable-threads=win32 --disable-libstdcxx-pch --enable-fully-dynamic-string --enable-libgomp --with-tune=generic --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc --with-gnu-ld --with-gnu-as

            注意--with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe 這兩句是必須要的,否則在編譯可能出現(xiàn)無法生成a.exe文件的錯誤,根據(jù)網(wǎng)上得出的資料是MSYS在文件映射方面,最好是使用UNIX下面的路徑方式,如果使用DOS的路徑方式很容易出現(xiàn)一些陌名的錯誤。還有如果你要編譯GCC的大部份編譯器,最好還是按照我上面的來寫--enable-languages=c,c++,fortran,objc,obj-c++,treelang,java,因為有時候GCC配置無法正常識別你要編譯的語言種類,另外GNAT自gcc4.2.0開始,我就一直沒有成功過,一直提示缺少calander文件。


            接著是make,心跳吧,在我的編譯歷程中,這里是最容易出現(xiàn)各種各樣奇怪的錯誤的,一般來說有兩個方面,一個是上述配置沒有做好,存在一定問題,另一個就是編譯用的源文件出現(xiàn)問題,我發(fā)現(xiàn)如果你使用WINRAR來解壓GCC4.2.2的源文件時,會有一個長文件名的.h文件解壓后文件名出錯,導(dǎo)致無法編譯通過,我推薦使用7-ZIP,這個在多次使用過程中沒有出現(xiàn)任何問題。

            最后一步是make install,很不幸的說,這里會存在一個問題,有時你會發(fā)現(xiàn)你安裝一半會提示你,需要安裝makeinfo和最新的make應(yīng)用程序,如果你仔細(xì)觀察一下你會發(fā)現(xiàn)GCC的CONFIGURE里面使用的是 missing makeinfo當(dāng)然是不對的了,還好MINGW上已經(jīng)提供了最的MSYS用MAKE和MAKEINFO,下載覆蓋,然后修改GCC源文件根目錄下的MAKEFILE和子文件夾GCC下的MAKEFILE,把里面的missing makeinfo替換為目錄下的makeinfo就可以解決,同時不要使用mingw32-make那個程序,那個雖然是同MINGW GCC在一起,但是無法在MSYS中使用,否則會出現(xiàn)調(diào)用文件目錄的錯誤,好了到了這一步,GCC4.2.2的編譯全過程就結(jié)束了,希望大家用得愉快


            posted on 2007-12-15 10:03 Loki.RF 閱讀(6872) 評論(9)  編輯 收藏 引用

            Feedback

            # re: 用MINGW編譯GCC4.2.2指南 2007-12-17 10:01 崔友志
            學(xué)習(xí)  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南 2007-12-18 21:17 秦歌
            學(xué)習(xí)學(xué)習(xí)  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南[未登錄] 2009-05-04 15:06 Loaden
            我編譯GMP4.3成功了,不過編譯mpfr出現(xiàn)錯誤。  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南[未登錄] 2009-05-04 20:08 Loaden
            mpfr也編譯成功了,正準(zhǔn)備編譯gcc  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南 2009-05-11 10:18 test
            編譯GMP成功并make install后,再編譯MPFR,提示找不到gpm.h文件
            后來將Msys安裝目錄下的/local/include和/local/lib目錄拷貝到MinGW安裝目錄下的相關(guān)目錄,即解決問題。編譯好MPFR,還是要將相應(yīng)文件拷貝到MinGW得安裝目錄下才能編譯GCC,請教博主這個問題該怎么解決?在Msys中怎么設(shè)置才能避免手動拷貝文件?

            我沒有安裝GNUWIN32組件,編譯gcc也行的  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南 2009-05-14 05:35 zelsazgh
            @test
            編譯時增加prefix參數(shù),指定安裝路徑即可  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南[未登錄] 2009-05-14 10:14 Loaden
            博主你好!我只想編譯c/c++,使用make 及make install應(yīng)該不行。
            于是我使用:
            make all-gcc all-target-libstdc++-v3 all-target-libssp all-target-libgcc && make install-gcc install-target-libstdc++-v3 install-target-libssp install-target-libgcc

            上面是通過configure之后的makefile文件自己判斷的。
            雖然我能編譯成功,但總出現(xiàn)crt2.o找不到的問題。

            另,我已經(jīng)編譯MinGW好幾天了,有一些體會,但也有不少疑惑,想與博主QQ交流:1090833,能否加我QQ聊?  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南[未登錄] 2009-05-14 10:16 Loaden
            一個非常奇怪的問題:我編譯binutils成功,但make check總失敗。
            不知為何。  回復(fù)  更多評論
              

            # re: 用MINGW編譯GCC4.2.2指南 2014-05-28 21:01 comet
            運行的程序放到哪個文件夾下?  回復(fù)  更多評論
              

            色综合合久久天天给综看| 欧美久久久久久| 久久66热人妻偷产精品9| 久久久久亚洲av无码专区| 精品久久久久久久久午夜福利| 色妞色综合久久夜夜| 国产2021久久精品| 久久精品国产乱子伦| 亚洲一本综合久久| 国产亚洲精品久久久久秋霞| 亚洲国产精品久久久久婷婷软件| 亚洲精品成人网久久久久久| 99久久99这里只有免费的精品| 欧美粉嫩小泬久久久久久久 | 人妻无码精品久久亚瑟影视 | 亚洲精品无码久久久久sm| 麻豆精品久久精品色综合| 久久SE精品一区二区| 久久天天躁狠狠躁夜夜av浪潮| 国产精品女同久久久久电影院| 久久人人爽人人爽人人爽| 久久久久亚洲AV无码专区网站| 久久国产亚洲精品麻豆| 久久无码人妻一区二区三区| 人妻无码精品久久亚瑟影视| 午夜精品久久久久久| 国内精品久久久久久久久| 91精品国产综合久久精品| 亚洲精品tv久久久久久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国内精品伊人久久久影院| 久久精品国产色蜜蜜麻豆| www亚洲欲色成人久久精品| 久久精品嫩草影院| 亚洲国产二区三区久久| 热99re久久国超精品首页| 久久精品国产免费| 99久久精品免费| 久久久久久久国产免费看| 午夜精品久久久久久久无码| 大香伊人久久精品一区二区|