最近我对Xcode 5中包含的新的clang编译器感到失望,我想知道在OS上安装GNU GCC的最好方法是什么。
需要考虑的事项:
编辑:成功!用GCC 4.9.2 (用GMP5.1.3,MPFR 3.1.2,MPC 1.0.2,ISL 0.12.2,CLooG 0.18.1)成功地建成GCC。从这里学到的窍门:
configure调用CC=clang CXX=clang++,以便GCC知道它不是GCC编写的。-j8调用-j8,否则构建将需要大约4个小时!(使用-j8,在我的Mid-2012 MBP上使用8gb内存需要一个半小时。) (make -j8意味着make可以同时构建8个线程(4个内核+ HT),而在一个2核机器上运行make -j4。)希望这能有所帮助!
发布于 2014-01-19 06:06:28
我的做法是:
gcc-4.x.y/INSTALL/index.html文件中的GCC源代码,或在线在http://gcc.gnu.org/install/。- GNU Multiple Precision Library (GMP) version 4.3.2 (or later) from [http://gmplib.org/](http://gmplib.org/).
- MPFR Library version 2.4.2 (or later) from [http://www.mpfr.org/](http://www.mpfr.org/).
- MPC Library version 0.8.1 (or later) from [http://www.multiprecision.org/](http://www.multiprecision.org/).
- ISL Library version 0.11.1 from [ftp://gcc.gnu.org/pub/gcc/infrastructure/](ftp://gcc.gnu.org/pub/gcc/infrastructure/).
- CLooG 0.18.0 from [ftp://gcc.gnu.org/pub/gcc/infrastructure/](ftp://gcc.gnu.org/pub/gcc/infrastructure/).
这是GCC 4.8.2的剧本:
GCC_VER=gcc-4.8.2
tar -xf ${GCC_VER}.tar.bz2 || exit 1
(
cd ${GCC_VER} || exit
cat <<EOF |
cloog 0.18.0 tar.gz
gmp 5.1.3 tar.xz
isl 0.11.1 tar.bz2
mpc 1.0.1 tar.gz
mpfr 3.1.2 tar.xz
EOF
while read file vrsn extn
do
(
set -x
tar -xf "../$file-$vrsn.$extn" &&
ln -s "$file-$vrsn" "$file"
)
done
)
mkdir ${GCC_VER}-obj
cd ${GCC_VER}-obj
../${GCC_VER}/configure --prefix=$HOME/gcc/gcc-4.8.2
make -j8 bootstrap完成后,也运行安装。然后将$HOME/gcc/gcc-4.8.2/bin (您在--prefix +/bin中指定的名称)添加到/usr/bin前面的路径中。
使用一个具有5400 rpm旋转磁盘的体面的MacBook Pro,编译所有内容需要一两个小时(使用-j8选项到make),编译时需要多个千兆字节的磁盘空间。SSD是很好的,当这样做(绝对更快)!
GCC 4.9.0于2014-04-22发行.我在Mac 10.9.2小牛和Ubuntu12.04衍生产品上安装了CLooG 0.18.1和ISL0.12.2(必需更新)和GMP5.1.3(和6.0.0a)、MPC 1.0.2 (或1.0.1)和MPFR3.1.2。请注意,gmp-6.0.0a.tar.xz将提取到目录gmp-6.0.0 (而不是您可能预期的gmp-6.0.0a )。
在2014到2017-09-27年间,我已经构建了GCC版本4.9.0,4.9.1,5.1.0,5.2.0,5.3.0,6.1.0,6.2.0,6.3.0,7.1.0,只在macOS Sierra上GCC 7.2.0的构建脚本中有了一些细微的变化(10.12)。辅助库的版本经常发生变化。
macOS塞拉利昂和高塞拉
在2017-08-14,我使用上面脚本的一个小变体在macOS Sierra10.12上构建GCC 7.2.0 (使用XCode 8作为引导编译器)。一个改变是,CLooG似乎不再需要了(我不再用GCC 6.2.0添加它)。这是我现在的剧本:
#!/bin/bash
#export DYLD_LIBRARY_PATH=$(clnpath $(dirname $(dirname $(which g++)))/lib:$DYLD_LIBRARY_PATH)
unset DYLD_LIBRARY_PATH
TAR=/opt/gnu/bin/tar
VER_NUM=7.2.0
GCC_VER=gcc-${VER_NUM}
TGT_BASE=/opt/gcc
TGT_DIR=${TGT_BASE}/v${VER_NUM}
CC=/usr/bin/clang
CXX=/usr/bin/clang++
extract() {
echo "Extract $1"
$TAR -xf $1
}
if [ ! -d "$GCC_VER" ]
then extract ${GCC_VER}.tar.xz || exit 1
fi
(
cd ${GCC_VER} || exit
nbncl <<EOF |
gmp 6.1.2 tar.lz
isl 0.16.1 tar.bz2
mpc 1.0.3 tar.gz
mpfr 3.1.5 tar.xz
EOF
while read file vrsn extn
do
tarfile="../$file-$vrsn.$extn"
if [ ! -f "$tarfile" ]
then echo "Cannot find $tarfile" >&2; exit 1;
fi
if [ ! -d "$file-$vrsn" ]
then
(
set -x
extract "$tarfile" &&
ln -s "$file-$vrsn" "$file"
) || exit 1
fi
done
)
if [ $? = 0 ]
then
mkdir ${GCC_VER}-obj
cd ${GCC_VER}-obj
../${GCC_VER}/configure --prefix="${TGT_DIR}" \
CC="${CC}" \
CXX="${CXX}"
make -j8 bootstrap
fi确保您的tar版本支持所有4种不同的压缩文件格式(.lz、.gz、.xz、.bz2),但是由于标准的tar版本对我来说是这样的,所以它可能也适用于您。
在2017至09-27年间,我未能使用与macOS 10.12相同的脚本在XCode HighSiera10.13(引导编译器使用XCode 9)上构建GCC 7.2.0。当前的错误是缺少了头<stack>;我需要跟踪我的XCode 9安装是否正确,或者更准确地说,为什么它是不正确的,因为<stack>是一个C++98标准标头。可能有一个简单的解决办法,我只是还没有花时间去追求它。(是的,我已经多次运行xcode-select --install;由于网络故障,我不得不多次运行它,这可能是问题的一部分。)(我让GCC 7.2.0在2017年(12-02)成功编译;我不记得要用什么体操--如果有的话--才能成功。)
时间流逝,版本号增加。然而,对我来说,最基本的配方是适用于最近版本的GCC的。我有7.3.0 (安装2018-01-2)、8.1.0 (安装2018-05-02)、8.2.0 (安装2018-07-26)、8.3.0 (安装2019-03-01)和现在9.1.0 (今天安装,2019-05-03)。每个版本都是在当前版本的macOS上构建和安装的,在引导阶段使用当前版本的XCode (所以在构建GCC 9.1.0时使用macOS 10.14.4 Mojave和XCode 10.2.1 )
发布于 2017-02-23 02:46:42
Homebrew现在有GCC软件包,所以您可以使用以下命令来安装它:
brew install gcc发布于 2014-01-19 06:04:34
为OS 10.9.x小牛使用预编译的二进制文件:
→gcc-4.9
使用GNU服务器的源代码编译。
它包含当前版本(4.7是稳定版本)的gfortran (免费,开放源码,GNU Fortran 95编译器),gcc (GNU C)和g++ (GNU C++)编译器,可以执行自动矢量化(即修改代码,以利用AltiVec/SSE,自动)和其他复杂的优化,如OpenMP。有关更多信息,请参见本网页。 下载我的二进制文件,cd到下载文件夹。然后是gunzip gcc-4.9-bin.tar.gz (如果你的浏览器还没有这么做)和sudo tar -xvf gcc-4.9-bin.tar -C /。它在/usr/local中安装所有东西。只需键入gfortran即可调用Fortran 95编译器。你还需要从Mac安装苹果的XCode工具。使用XCode 4或5,您需要下载命令行工具,这是一个额外的步骤。您将在XCode的首选项中找到下载命令行工具的选项。 On 10.9小牛,只需键入xcode-select --安装即可获得命令行工具。
https://stackoverflow.com/questions/21173518
复制相似问题