2
回答
在 Mac OS X Lion 电脑中编译 gcc 4.6.1
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在这篇文章中我们将讲述如何在 Mac OS X Line 计算机上通过源码方式安装最新的 GCC 稳定版本 4.6.1,而 Lion 上默认安装的 gcc 是 4.2.1.

为恶劣编译 gcc 源码,你需要安装 gcc (哦,好纠结)假设你的电脑上已经装有最新的 Xcode,这对 OSX Lion 用户可以免费安装的。

首先我们从 GNU 网站上下载最新的 GCC 源码,地址是:ftp://ftp.gnu.org/gnu/gcc/gcc-4.6.1/  然后选择 gcc-4.6.1.tar.gz 文件并下载,该文件大约有 89.1 兆大小。

要编译 gcc 你还需要其他三个库:mpc, mpfr and gmp 这三个库都可以从 ftp://gcc.gnu.org/pub/gcc/infrastructure/ 这里下载到。选择最新的版本:gmp-4.3.2.tar.bz2, mpc-0.8.1.tar.gz 以及 mpfr-2.4.2.tar.bz2。

打开终端命令行窗口,执行 gcc 命令将会调用 LLVM 编译器而不是 GNU 的编译器,下面命令用来检查 gcc 的版本:

gcc --V
i686-apple-darwin11-llvm-gcc-4.2: no input files

使用 llvm-gcc 编译 gcc 4.6.1 不会成功的,因此我们需要临时修改默认的编译器到 GNU 的版本,输入下面命令:

export CXX=/usr/bin/g++-4.2
export CC=/usr/bin/gcc-4.2
export CPP=/usr/bin/cpp-4.2
export LD=/usr/bin/ld

我们将开是编译 gmp 库,双击 gmp-4.3.2.tar.bz2 将该文件解压到 gmp 目录,进入该目录:

cd Downloads
cd gmp*

创建一个新的子目录名为 build,用来保存编译后的库:

mkdir build
cd build

接下来是最有趣的部分,在终端中执行:

../configure --prefix=$HOME/my_gcc

该命令将准备安装包到 User_Name/my_gcc 目录,你可以修改 my_gcc 的名字。

如果该步骤没有任何错误,那么我们就可以编译 gmp 库了:

make

几分钟过后,你将会得到一个编译后的 gmp 库,我们可以用下面的命令来检查编译是否成功:

make check

如果你在编译过程中没发现任何错误信息,恭喜你,我们已经可以开始安装这个库到 my_gcc 目录了:

make install

同样的步骤我们还需要安装 MPFR 库,双击解压:

cd ..
cd ..
cd mpfr*
mkdir build
cd build

../configure --prefix=$HOME/my_gcc --with-gmp=$HOME/my_gcc

make
make install

然后是 MPR 库,同样要解压:

cd ..
cd ..
cd mpc*
mkdir build
cd build
../configure --prefix=$HOME/my_gcc --with-gmp=$HOME/my_gcc --with-mpfr=$HOME/my_gcc
make
make install

终于我们可以开始编译 gcc 了,双击 gcc-4.6.1.tar.gz 解压:

cd ..
cd ..
cd gcc*
mkdir build
cd build
../configure --prefix=$HOME/my_gcc --enable-checking=release --with-gmp=$HOME/my_gcc --with-mpfr=$HOME/my_gcc --with-mpc=$HOME/my_gcc --program-prefix=my-

上面的命令将配置我们已安装的 gmp、mpfr 和 mpc 库到应用中,并添加一个前缀给所有生成的可执行程序,例如我们可以通过 my-gcc 来调用 gcc 4.6.1,而默认的 gcc 命令将还是调用系统中的 gcc 4.2.1。如果你希望使用的是 gcc-4.6.1 这样的命令而不是 my-gcc ,那么上面的命令可以改写为:

../configure --prefix=$HOME/my_gcc --enable-checking=release --with-gmp=$HOME/my_gcc --with-mpfr=$HOME/my_gcc --with-mpc=$HOME/my_gcc --program-suffix=-4.6.1

如果你只对某些语言感兴趣,你也可以指定参数,例如你只想要 C/C++ 和 Fortran 语言,那么可以这样:

--enable-languages=c,c++,fortran

接下来开始编译:

make

编译会比较慢,如果你的机器装有多核处理器,那么你可以使用并行编译模式,例如拥有4核处理器的机器可以使用下面的命令进行编译:

make -j 4

喝杯咖啡、看本书,要是我的话会抽包烟,然后编译就会结束,接下来就是安装这个编译工具了(my_gcc):

make install

现在,你可以让你新安装的 gcc 编译器与系统原有的编译器独立开来,当你需要使用新的编译器时,只需要在终端修改临时路径即可:

export PATH=$HOME/my_gcc/bin:$PATH

一切就绪,我们可以使用新编译器了,编写一个测试程序 test.cpp :

//Program to test the new C++11 lambda syntax
#include <iostream>
 
using namespace std;
 
int main()
{
    cout<<[](int m,int n){return m+n;}(2,4)<<endl;
    return(0);
}

编译并执行:

my-g++ -std=c++0x test.cpp -o test
./test
6

好吧,到此结束。

举报
鉴客
发帖于6年前 2回/9K+阅
顶部