ここにいる人のうち、自分のコンピュータに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ビルドで使用することです(どのビルドフラグが使用するリンカーを指定できるかわかりませんが、おそらく1つあります) )。
答え2
export CFLAGS="-O2 -fPIC"
export CXXFLAGS=$CFLAGS
./configure && make
最初のエラー行に直接あります。「共有オブジェクトを作成するときは使用できません。-fPICで再コンパイルしてください。」
答え3
誰かがDebianベースのディストリビューションにGCC 13をインストールしたい場合は、MX-Linux(Debian bookworm base)で使用するときに本当にうまくいく(設定、ビルド、インストール)記事を見つけました。