0

我需要在我的 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

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

../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 的软件包。

4

2 回答 2

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 
于 2016-10-09T12:47:04.340 回答
0

看起来您将构建目录放在源代码树中。不要那样做。按照 wiki 的说明进行操作

不要./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
于 2016-06-03T10:45:38.417 回答