gcc 6.2

时间:2016-09-25 23:30:09

标签: gcc

我有CentOS 7.2 1511(gcc 4.8.5 20150623(Red Hat 4.8.5-4)),并且一直在尝试编译从gnu网站下载的gcc 6.2.0。以下是我得到的错误:

checking for x86_64-pc-linux-gnu-gcc... /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include   
checking for suffix of object files... configure: error: in `/home/xxx/gcc-6.2.0/build/x86_64-pc-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/home/xxx/gcc-6.2.0/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/xxx/gcc-6.2.0/build'
make: *** [all] Error 2

查看x86_64-pc-linux-gnu / libgcc / config.log文件:

configure:3435: /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include    -V >&5
xgcc: error: unrecognized command line option '-V'
xgcc: fatal error: no input files
compilation terminated.
configure:3446: $? = 1
configure:3435: /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include    -qversion >&5
xgcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
xgcc: fatal error: no input files
compilation terminated.

这里发生了什么?我按照“mkdir build; cd build”的步骤进行操作,然后发出configure命令,如下所示:

../configure --disable-multilib --enable-languages=c,c++ --with-system-zlib --with-default-libstdcxx-abi=gcc4-compatible

2 个答案:

答案 0 :(得分:0)

与(感谢Oleksandr Kravchuk)的错误略有不同:

Compilng libgcc xgcc error

以下是我的解决方案:

--- tmp/gcc-6.2.0/libgcc/configure  2016-04-11 15:45:35.000000000 -0400
+++ gcc-6.2.0/libgcc/configure  2016-09-25 15:59:21.611181908 -0400
@@ -3426,26 +3426,26 @@ See \`config.log' for more details." "$L
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    rm -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
+#for ac_option in --version -v -V -qversion; do
+#  { { ac_try="$ac_compiler $ac_option >&5"
+#case "(($ac_try" in
+#  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+#  *) ac_try_echo=$ac_try;;
+#esac
+#eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+#$as_echo "$ac_try_echo"; } >&5
+#  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+#  ac_status=$?
+#  if test -s conftest.err; then
+#    sed '10a\
+#... rest of stderr output deleted ...
+#         10q' conftest.err >conftest.er1
+#    cat conftest.er1 >&5
+#    rm -f conftest.er1 conftest.err
+#  fi
+#  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+#  test $ac_status = 0; }
+#done

 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */

所以基本上我只是忽略了对“-qversion”,“ - V”等的所有检查。此外,稍后在相同的配置脚本中将给出另一个“libisl”API未找到错误。由于我自己下载了libisl源代码并直接将其编译到/ usr / local / lib,因此gcc编译似乎没有获取新库。

因此我将“/ usr / local / lib”行添加到/etc/ld.so.conf文件中,然后执行“sudo ldconfig”。

编译继续完成而没有错误,测试似乎很好。

答案 1 :(得分:0)

我遇到了&#34; [stage1-bubble]错误&#34; 因为我没有关注proper procedure来构建和安装gcc。例如,我在源目录上完成了 configure

以下是在CentOS 7上构建和安装gcc 8.1.0的方法:

首先是一些先决条件:

yum install gcc-c++
yum install libgcc.i686
yum install glibc-devel.i686
yum install epel-release
yum install lbzip2
yum install wget
yum install flex

下载,构建和安装:

wget ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-8.1.0/gcc-8.1.0.tar.xz
tar -xvf gcc-8.1.0.tar.xz
cd gcc-8.1.0
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-8.1.0/configure --prefix=$HOME/GCC-8.1.0 --enable-languages=c,c++
make -j 3
make install

在我的虚拟机上,构建需要几个小时,即使使用-j选项也可以利用额外的CPU内核。

如果构建失败,例如缺少依赖关系,那么擦除“objdir”的好主意是个好主意。目录并再次运行make

顺便说一句,这些步骤也可用于构建Git repository中的最新代码,显然只需稍作修改。