这里有人设法在他们的计算机上安装 GCC 13.1.0 吗?当我尝试在 64 位 Debian Linux 上从源代码构建它时,收到以下错误消息:
/usr/bin/ld: .libs/hwasan.o: relocation R_X86_64_PC32 against undefined symbol `__ehdr_start' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:559: libhwasan.la] Error 1
make[4]: Leaving directory '/home/teo/gcc-objdir/x86_64-pc-linux-gnu/libsanitizer/hwasan'
make[3]: *** [Makefile:532: all-recursive] Error 1
make[3]: Leaving directory '/home/teo/gcc-objdir/x86_64-pc-linux-gnu/libsanitizer'
make[2]: *** [Makefile:419: all] Error 2
make[2]: Leaving directory '/home/teo/gcc-objdir/x86_64-pc-linux-gnu/libsanitizer'
make[1]: *** [Makefile:22725: all-target-libsanitizer] Error 2
make[1]: Leaving directory '/home/teo/gcc-objdir'
make: *** [Makefile:1090: all] Error 2
我用 来配置它../gcc-13.1.0/configure --enable-languages=c,c++ --disable-multilib
。我当前的 GCC 版本是:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-12.2.0/configure --enable-languages=c,c++,ada --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.0 (GCC)
由于这是一个链接错误,我想我当前的链接器可能是相关的。这是:
GNU ld (GNU Binutils for Debian) 2.31.1
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
那么,您认为问题是什么?我该如何解决?
我在 Windows 上成功安装它的可能性非常低,甚至不值得尝试。你同意?
答案1
此错误似乎是由 ld 2.31.1 中的错误引起的:https://sourceware.org/bugzilla/show_bug.cgi?id=24458。
该错误已在 ld 2.32 和更高版本的 2.31 中修复(但似乎并未进入 Debian 10 软件包存储库)。
虽然我还没有尝试过,但可能的解决方法是获取更新的 ld (可能从源代码构建它),然后将其用于 gcc 构建(我不确定哪个构建标志允许指定要使用的链接器,但是大概有一个)。
答案2
export CFLAGS="-O2 -fPIC"
export CXXFLAGS=$CFLAGS
./configure && make
它就在第一条错误行上:“创建共享对象时不能使用;使用 -fPIC 重新编译”
答案3
如果有人想在基于 Debian 的发行版上安装 GCC 13,我找到了一篇文章,当它与 MX-Linux(Debian bookworm 基础)一起使用时,效果非常好(配置、构建和安装)。