Fedora 23上的gcc 4.7与gcc 5.3.1

时间:2016-06-03 09:43:07

标签: c++ gcc fedora fedora-23

我需要在我的fedora 23上安装gcc 4.7.x才能让Matlab编译代码。当我尝试使用需要gcc 4.9.x或更低版本的Cuda时,我也遇到了一个错误。

我尝试从头开始编译gcc-4.7.4但是我收到以下错误:

Makefile:4107: recipe for target 'all-stage1-gcc' failed
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory '/home/x/src/objdir'
Makefile:19334: recipe for target 'stage1-bubble' failed
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory '/home/x/src/objdir'
Makefile:903: recipe for target 'all' failed
make: *** [all] Error 2

我为配置和构建创建了一个单独的目录,并运行configure as:

../gcc-4.7.4/configure --enable-languages=c,c++ --disable-multilib --prefix=$HOME/gcc-4.7.4

但是我觉得问题来自于我使用gcc-5.3.1来编译gcc-4.7.4,但我不知道如何修复它。

我注意到dnf没有可用于安装gcc-4.7.x的软件包。

2 个答案:

答案 0 :(得分:0)

看起来您将构建目录放在源树中。不要那样做。 Follow the wiki's instructions

  

不要在源目录中运行./configure,这不受支持。您需要在源目录外部,在为构建

创建的单独目录中运行configure

它看起来像这样:

tar xzf gcc-4.7.4.tar.gz
cd gcc-4.7.4
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.7.4/configure --no-multilib --prefix=$HOME/gcc-4.7.4 --enable-languages=c,c++
make
make install

答案 1 :(得分:0)

这个问题现在有点过时了,但修补gcc / cp / cfns.gperf对我来说很有用。见这里:https://gist.github.com/joka90/bb8ef36aa755994d3b3d/。在Fedora 23下使用gcc 5.3.1构建。

#Download and apply fix to be able to build gcc 4.7 with gcc 5.1
cd /path/to/build/gcc/source
wget https://patchwork.ozlabs.org/patch/504982/raw/ -O cfns-fix-mismatch-in-gnu_inline-attributes.patch
patch -p1 -i cfns-fix-mismatch-in-gnu_inline-attributes.patch