久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

在OS X Lion 10.8.4 x86

 dwlinux_gs 2014-10-08

2013-08-12 wcdj (明天七夕,,紀(jì)念結(jié)婚一周年)


1 下載最新支持C++11的GCC編譯器

http://gcc./

http://gcc./gcc-4.8/(下載gcc 4.8.1)

GCC 4.8.1 will beC++11 feature-complete[2013-04-01]
Support for C++11 ref-qualifiers was added to the GCC 4.8 branch, making G++ the first C++ compiler to implement all the major language features of the C++11 standard. This functionality will be available in GCC 4.8.1. (注意并不是所有的新特性都支持)

2 編譯遇到的問題

首先查看INSTALL說明:file:///Users/gerryyang/code/public/gcc-4.8.1/INSTALL/index.html,,然后嘗試編譯:

sh-3.2#pwd 

/Users/gerryyang/code/public/gcc-4.8.1


  1. sh-3.2# ./configure --prefix=/usr/local/gcc-4.8.1/  
  2. checking build system type... x86_64-apple-darwin12.4.0  
  3. checking host system type... x86_64-apple-darwin12.4.0  
  4. checking target system type... x86_64-apple-darwin12.4.0  
  5. checking for a BSD-compatible install... /usr/bin/install -c  
  6. checking whether ln works... yes  
  7. checking whether ln -s works... yes  
  8. checking for a sed that does not truncate output... /usr/bin/sed  
  9. checking for gawk... no  
  10. checking for mawk... no  
  11. checking for nawk... no  
  12. checking for awk... awk  
  13. checking for libatomic support... yes  
  14. checking for libitm support... yes  
  15. checking for libsanitizer support... yes  
  16. checking for gcc... gcc  
  17. checking for C compiler default output file name... a.out  
  18. checking whether the C compiler works... yes  
  19. checking whether we are cross compiling... no  
  20. checking for suffix of executables...   
  21. checking for suffix of object files... o  
  22. checking whether we are using the GNU C compiler... yes  
  23. checking whether gcc accepts -g... yes  
  24. checking for gcc option to accept ISO C89... none needed  
  25. checking for g++... g++  
  26. checking whether we are using the GNU C++ compiler... yes  
  27. checking whether g++ accepts -g... yes  
  28. checking whether g++ accepts -static-libstdc++ -static-libgcc... no  
  29. checking for gnatbind... no  
  30. checking for gnatmake... no  
  31. checking whether compiler driver understands Ada... no  
  32. checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2  
  33. checking for objdir... .libs  
  34. checking for the correct version of gmp.h... no  
  35. configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.  
  36. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify  
  37. their locations.  Source code for these libraries can be found at  
  38. their respective hosting sites as well as at  
  39. ftp://gcc./pub/gcc/infrastructure/.  See also  
  40. http://gcc./install/prerequisites.html for additional info.  If  
  41. you obtained GMP, MPFR and/or MPC from a vendor distribution package,  
  42. make sure that you have installed both the libraries and the header  
  43. files.  They may be located in separate packages.  
OK,,根據(jù)錯(cuò)誤提示“configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.”下載依賴的packages,,ftp路徑也已提示我們“

GMP 4.2+: ftp://gcc./pub/gcc/infrastructure/gmp-4.3.2.tar.bz2

MPFR 2.4.0+: ftp://gcc./pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2

MPC 0.8.0+: ftp://gcc./pub/gcc/infrastructure/mpc-0.8.1.tar.gz

根據(jù)提示的順序分別安裝GMP,MPFR和MPC:

step1: ./configure --prefix=/usr/local/gmp-4.3.2; make install

step2: ./configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2/; make install

注意:step2依賴于step1,,否則會(huì)報(bào)”configure: error: gmp.h can't be found, or is unusable.“的錯(cuò)誤,。

step3: ./configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2/ --with-mpfr=/usr/local/mpfr-2.4.2/; make install

注意:step3同樣依賴于前面的庫,,否則會(huì)報(bào)”configure: error: libgmp not found or uses a different ABI.和configure: error: libmpfr not found or uses a different ABI.“的錯(cuò)誤。

step4: 設(shè)置環(huán)境變量,,export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib/:/usr/local/mpfr-2.4.2/lib/:/usr/local/mpc-0.8.1/lib/

step5:./configure --prefix=/usr/local/gcc-4.8.1/ --enable-threads=posix --disable-checking --with-gmp=/usr/local/gmp-4.3.2/ --with-mpfr=/usr/local/mpfr-2.4.2/ --with-mpc=/usr/local/mpc-0.8.1/ (還是提示找不到,!看來掉坑里了)


3 正確地編譯方法

上述方法在參考[2]是不建議這樣做的:

The difficult way, which is not recommended, is to download the sources for GMP, MPFR and MPC, then configure and install each of them in non-standard locations, then configure GCC with--with-gmp=/some/silly/path/gmp --with-mpfr=/some/silly/path/mpfr --with-mpc=/some/silly/path/mpc, then be forced to set LD_LIBRARY_PATH=/some/silly/path/gmp:/some/silly/path/mpfr:/some/silly/path/mpc/lib in your environment forever. This is silly and causes major problems for anyone who doesn't understand how dynamic linkers find libraries at runtime. Do not do this. If building GCC fails when using any of the--with-gmp or--with-mpfr or--with-mpc options then you probably shouldn't be using them.


參考[2]中介紹了更簡單的方法:

Alternatively, after extracting the GCC source archive, simply run the ./contrib/download_prerequisites script in the GCC source directory. That will download the support libraries and create symlinks, causing them to be built automatically as part of the GCC build process. Set GRAPHITE_LOOP_OPT=yes in the script if you want to build GCC with the Graphite loop optimizations.

  1. # gcc-4.8.1/contrib/download_prerequisites  
  2. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  
  3. # General Public License for more details.  
  4. #  
  5. # You should have received a copy of the GNU General Public License  
  6. # along with this program. If not, see http://www./licenses/.  
  7.   
  8. MPFR=mpfr-2.4.2  
  9. GMP=gmp-4.3.2  
  10. MPC=mpc-0.8.1  
  11.   
  12. wget ftp://gcc./pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1  
  13. tar xjf $MPFR.tar.bz2 || exit 1  
  14. ln -sf $MPFR mpfr || exit 1  
  15.   
  16. wget ftp://gcc./pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1  
  17. tar xjf $GMP.tar.bz2  || exit 1  
  18. ln -sf $GMP gmp || exit 1  
  19.   
  20. wget ftp://gcc./pub/gcc/infrastructure/$MPC.tar.gz || exit 1  
  21. tar xzf $MPC.tar.gz || exit 1  
  22. ln -sf $MPC mpc || exit 1  
  23.   
  24. rm $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz || exit 1  
前提需要下載wget(使用源碼方式,這里有些"坑",,若不指定--with-ssl=openssl則提示需要安裝GnuTLS

  1. ...  
  2. checking for compress in -lz... yes  
  3. checking for gpg_err_init in -lgpg-error... no  
  4. checking for gcry_control in -lgcrypt... no  
  5. checking for libgnutls... no  
  6. configure: error: --with-ssl was given, but GNUTLS is not available.  

Note the with-ssl=openssl option in the command above. If you omit that, you will get the following error:

下載wget源代碼地址:
http://www./software/wget/
tar -xzvf wget-1.14.tar.gz
cd wget-1.14
./configure --with-ssl=openssl

make
sudo make install

安裝好wget后,,使用代碼中自帶的腳本下載gcc依賴的文件:

  1. sh-3.2# pwd  
  2. /Users/gerryyang/code/public/gcc-4.8.1  
  3. sh-3.2# ./contrib/download_prerequisites  
  4. --2013-08-12 22:37:39--  ftp://gcc./pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2  
  5.            => ‘mpfr-2.4.2.tar.bz2’  
  6. Resolving gcc.... 209.132.180.131  
  7. Connecting to gcc.|209.132.180.131|:21... connected.  
  8. Logging in as anonymous ... Logged in!  
  9. ==> SYST ... done.    ==> PWD ... done.  
  10. ==> TYPE I ... done.  ==> CWD (1) /pub/gcc/infrastructure ... done.  
  11. ==> SIZE mpfr-2.4.2.tar.bz2 ... 1077886  
  12. ==> PASV ... done.    ==> RETR mpfr-2.4.2.tar.bz2 ... done.  
  13. Length: 1077886 (1.0M) (unauthoritative)  
  14.   
  15. 100%[==================================================================================================================================================================>] 1,077,886    194KB/s   in 5.7s     
  16.   
  17. 2013-08-12 22:37:51 (185 KB/s) - ‘mpfr-2.4.2.tar.bz2’ saved [1077886]  
  18.   
  19. --2013-08-12 22:37:51--  ftp://gcc./pub/gcc/infrastructure/gmp-4.3.2.tar.bz2  
  20.            => ‘gmp-4.3.2.tar.bz2’  
  21. Resolving gcc.... 209.132.180.131  
  22. Connecting to gcc.|209.132.180.131|:21... connected.  
  23. Logging in as anonymous ... Logged in!  
  24. ==> SYST ... done.    ==> PWD ... done.  
  25. ==> TYPE I ... done.  ==> CWD (1) /pub/gcc/infrastructure ... done.  
  26. ==> SIZE gmp-4.3.2.tar.bz2 ... 1897483  
  27. ==> PASV ... done.    ==> RETR gmp-4.3.2.tar.bz2 ... done.  
  28. Length: 1897483 (1.8M) (unauthoritative)  
  29.   
  30. 100%[==================================================================================================================================================================>] 1,897,483    177KB/s   in 10s      
  31.   
  32. 2013-08-12 22:38:08 (177 KB/s) - ‘gmp-4.3.2.tar.bz2’ saved [1897483]  
  33.   
  34. --2013-08-12 22:38:09--  ftp://gcc./pub/gcc/infrastructure/mpc-0.8.1.tar.gz  
  35.            => ‘mpc-0.8.1.tar.gz’  
  36. Resolving gcc.... 209.132.180.131  
  37. Connecting to gcc.|209.132.180.131|:21... connected.  
  38. Logging in as anonymous ... Logged in!  
  39. ==> SYST ... done.    ==> PWD ... done.  
  40. ==> TYPE I ... done.  ==> CWD (1) /pub/gcc/infrastructure ... done.  
  41. ==> SIZE mpc-0.8.1.tar.gz ... 544950  
  42. ==> PASV ... done.    ==> RETR mpc-0.8.1.tar.gz ... done.  
  43. Length: 544950 (532K) (unauthoritative)  
  44.   
  45. 100%[==================================================================================================================================================================>] 544,950      172KB/s   in 3.1s     
  46.   
  47. 2013-08-12 22:38:16 (172 KB/s) - ‘mpc-0.8.1.tar.gz’ saved [544950]  

再嘗試編譯gcc,configure成功生產(chǎn)Makefile,,下面可以make install了,。

  1. sh-3.2# pwd  
  2. /Users/gerryyang/code/public/gcc-4.8.1  
  3. sh-3.2# ./configure --prefix=/usr/local/gcc-4.8.1/ --enable-threads=posix --disable-checking  
  4. checking build system type... x86_64-apple-darwin12.4.0  
  5. checking host system type... x86_64-apple-darwin12.4.0  
  6. checking target system type... x86_64-apple-darwin12.4.0  
  7. checking for a BSD-compatible install... /usr/bin/install -c  
  8. checking whether ln works... yes  
  9. checking whether ln -s works... yes  
  10. checking for a sed that does not truncate output... /usr/bin/sed  
  11. checking for gawk... no  
  12. checking for mawk... no  
  13. checking for nawk... no  
  14. checking for awk... awk  
  15. checking for libatomic support... yes  
  16. checking for libitm support... yes  
  17. checking for libsanitizer support... yes  
  18. checking for gcc... gcc  
  19. checking for C compiler default output file name... a.out  
  20. checking whether the C compiler works... yes  
  21. checking whether we are cross compiling... no  
  22. checking for suffix of executables...   
  23. checking for suffix of object files... o  
  24. checking whether we are using the GNU C compiler... yes  
  25. checking whether gcc accepts -g... yes  
  26. checking for gcc option to accept ISO C89... none needed  
  27. checking for g++... g++  
  28. checking whether we are using the GNU C++ compiler... yes  
  29. checking whether g++ accepts -g... yes  
  30. checking whether g++ accepts -static-libstdc++ -static-libgcc... no  
  31. checking for gnatbind... no  
  32. checking for gnatmake... no  
  33. checking whether compiler driver understands Ada... no  
  34. checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2  
  35. checking for objdir... .libs  
  36. checking for version 0.10 of ISL... no  
  37. checking for version 0.11 of ISL... no  
  38. The following languages will be built: c,c++,fortran,java,objc  
  39. *** This configuration is not supported in the following subdirectories:  
  40.      target-libmudflap target-libgo gnattools target-libada target-libbacktrace  
  41.     (Any other directories should still work fine.)  
  42. rm: conftest.dSYM: is a directory  
  43. checking for default BUILD_CONFIG... bootstrap-debug  
  44. checking for bison... bison -y  
  45. checking for bison... bison  
  46. checking for gm4... gm4  
  47. checking for flex... flex  
  48. checking for flex... flex  
  49. checking for makeinfo... makeinfo  
  50. checking for expect... expect  
  51. checking for runtest... no  
  52. checking for ar... ar  
  53. checking for as... as  
  54. checking for dlltool... no  
  55. checking for ld... (cached) /usr/llvm-gcc-4.2/bin/../libexec/gcc/i686-apple-darwin11/4.2.1/ld  
  56. checking for lipo... lipo  
  57. checking for nm... nm  
  58. checking for ranlib... ranlib  
  59. checking for strip... strip  
  60. checking for windres... no  
  61. checking for windmc... no  
  62. checking for objcopy... no  
  63. checking for objdump... no  
  64. checking for readelf... no  
  65. checking for cc... cc  
  66. checking for c++... c++  
  67. checking for gcc... gcc  
  68. checking for gcj... no  
  69. checking for gfortran... no  
  70. checking for gccgo... no  
  71. checking for ar... no  
  72. checking for ar... ar  
  73. checking for as... no  
  74. checking for as... as  
  75. checking for dlltool... no  
  76. checking for dlltool... no  
  77. checking for ld... no  
  78. checking for ld... ld  
  79. checking for lipo... no  
  80. checking for lipo... lipo  
  81. checking for nm... no  
  82. checking for nm... nm  
  83. checking for objdump... no  
  84. checking for objdump... no  
  85. checking for ranlib... no  
  86. checking for ranlib... ranlib  
  87. checking for readelf... no  
  88. checking for readelf... no  
  89. checking for strip... no  
  90. checking for strip... strip  
  91. checking for windres... no  
  92. checking for windres... no  
  93. checking for windmc... no  
  94. checking for windmc... no  
  95. checking where to find the target ar... host tool  
  96. checking where to find the target as... host tool  
  97. checking where to find the target cc... just compiled  
  98. checking where to find the target c++... just compiled  
  99. checking where to find the target c++ for libstdc++... just compiled  
  100. checking where to find the target dlltool... host tool  
  101. checking where to find the target gcc... just compiled  
  102. checking where to find the target gcj... just compiled  
  103. checking where to find the target gfortran... just compiled  
  104. checking where to find the target gccgo... host tool  
  105. checking where to find the target ld... host tool  
  106. checking where to find the target lipo... host tool  
  107. checking where to find the target nm... host tool  
  108. checking where to find the target objdump... host tool  
  109. checking where to find the target ranlib... host tool  
  110. checking where to find the target readelf... host tool  
  111. checking where to find the target strip... host tool  
  112. checking where to find the target windres... host tool  
  113. checking where to find the target windmc... host tool  
  114. checking whether to enable maintainer-specific portions of Makefiles... no  
  115. configure: creating ./config.status  
  116. config.status: creating Makefile  

注意:剛開始沒注意,在源文件目錄(gcc-4.8.1/)下configure后再進(jìn)行make; make install會(huì)出現(xiàn)編譯時(shí)的斷言錯(cuò)誤,,在網(wǎng)上搜了錯(cuò)誤原因暫沒找到具體的解決辦法,。通過查看參考[2]通過另一種方法可以避免上述那個(gè)斷言錯(cuò)誤:

See Installing GCC: Configuration for the full documentation. A major benefit of running srcdir/configure from outside the source directory (instead of running./configure) is that the source directory will not be modified in any way, so if your build fails or you want to re-configure and build again, you simply delete everything in the objdir and start again.

For example, configuring and building GCC 4.6.2 should be as simple as:

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2 
make
make install
If your build fails and your configure command has lots of complicated options you should try removing options and keep it simple. Do not add lots of configure options you don't understand, they might be the reason your build fails.


OK,通過上述方法進(jìn)行編譯問題解決,,編譯耗時(shí)1小時(shí)+,,下面是編譯成功后gcc的版本信息:




4 參考

[1] http:///questions/9450394/how-to-install-gcc-from-scratch-with-gmp-mpfr-mpc-elf-without-shared-librari (講的很清楚)

[2] http://gcc./wiki/InstallingGCC(找到了光明大道)

http://gcc./install/prerequisites.html(關(guān)于一些依賴的說明)

[3] http://crosstown./os-x/32-install-and-configure-wget-on-os-x-lion-107 (編譯wget遇到的坑,這里說明了一種解決方法)

[4] http:///blog/install-wget-on-os-x-lion/ (編譯wget遇到的坑)



    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多