IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    MacOS Lion编译安装GCC-4.6.2

    zhpengg发表于 2012-02-28 04:00:00
    love 0

    Mac中的开发工具链都是围绕xcode展开的,但是对于只想使用gcc,g++编译c/c++代码的情况,装一个动辄3,4G的开发工具实在是不符合KISS原则。更新:4.3版本的xcode已经将图形开发界面和命令行工具分开了发布了。还有即使装了xcode,默认带的gcc编译器都是lvmm做前端的,并非纯正的gnu gcc。如果你想用纯正的gcc,最好的办法就是自己手动编译一个。

    本文中的安装步骤来源于:http://solarianprogrammer.com/2011/12/01/compiling-gcc-4-6-2-on-mac-osx-lion/,可以直接看英文原版。

    首先下载必要的源代码:

    • gcc-4.6.2 ftp://ftp.gnu.org/gnu/gcc/gcc-4.6.2/
    • MPC库http://www.multiprecision.org/index.phpprog=mpc&page;=download
    • MPFR库http://www.mpfr.org/mpfr-current/#download
    • GMP库 http://gmplib.org/

    编译前看下当前已安装的gcc版本:

    sagi@MacBookPro:~$ gcc --verion  
    i686-apple-darwin11-llvm-gcc-4.2: no input files  
    

    新建个文件夹,用来放之后编译好的gcc:

    mkdir $HOME/Library/gcc-4.6.2  
    

    先从GMP库开始:

    ./configure --prefix=$HOME/Library/gcc-4.6.2
    make  
    make install  
    

    这一步make完建议“make check”一下,看看编译是否正确。

    然后是MPFR:

    tar zxvf mpfr-3.1.0.tar.gz  
    cd mpfr-3.1.0  
    ./configure --prefix=$HOME/Library/gcc-4.6.2 --with-gmp=$HOME/Library/gcc-4.6.2
    make  
    make install  
    

    接着是MPC:

    tar zxvf mpc-0.9.tar.gz  
    cd mpc-0.9  
    ./configure --prefix=$HOME/Library/gcc-4.6.2 --with-gmp=$HOME/Library/gcc-4.6.2 --with-mpfr=$HOME/Library/gcc-4.6.2
    make  
    make install  
    

    最后才开始编译gcc本身:

    tar jxvf gcc-4.6.2.tar.bz2  
    cd gcc-4.6.2  
    ./configure --prefix=$HOME/Library/gcc-4.6.2 --with-gmp=$HOME/Library/gcc-4.6.2 --with-mpfr=$HOME/Library/gcc-4.6.2 --enable-checking=release --with-mpc=$HOME/Library/gcc-4.6.2 --program-suffix=4.6.2 --enable-languages=c,c++
    

    注意–program-suffix参数,表示生成的可执行文件的后缀。–enable-languages参数表示要支持的语言。最后make; make install即可。make的时候还有个小技巧:因为gcc文件很多,编译很慢,可以使用make -j N参数,开启多线程编辑。其中N值可以设定为机器CPU核数x2。

    编译好了之后就可以使用$HOME/Library/gcc-4.6.2/bin/gcc-4.6.2来编译c程序了。为了使用方便,可以将$HOME/Library/gcc-4.6.2/bin放到系统PATH中:

    export PATH=$HOME/Library/gcc-4.6.2/bin:$PATH
    BTW:有人编译高版本的GCC/G++是为了在Mac中编译C++11(C++0x)的代码。其实目前在Mac平台上对C++11标准支持最好的是Clang++编译器。



沪ICP备19023445号-2号
友情链接