オプション -nodefaultlib でコンパイルする必要があります または -nostdlibs .
GCC ドキュメントからの引用 (clang インターフェースはまったく同じです):
<ブロック引用>
-nostdlib によってバイパスされる標準ライブラリの 1 つ と -nodefaultlibs libgcc.a です は、GCC が特定のマシンの欠点や一部の言語の特別なニーズを克服するために使用する内部サブルーチンのライブラリです。
C++ 静的初期化ルーチンを実行するか、オブジェクト ファイル crt<x>.o によって提供されるものを使用する必要がある場合があります。 lib ディレクトリにあります。これらのファイルは libc の一部です 実行可能なエントリ ポイントを提供します。
Clang にはリンカーが付属しておらず、ld に依存しています。 代わりは。そして ld libgcc.a に依存 および/または libgcc.so あなたのシステムで (これが LLVM リンカ ld.lld であるかどうかに関係なく) または GNU ld)。これが、このエラー メッセージが表示される理由です。
答えは実際には次のとおりです。
<ブロック引用>(a) リンカーは libgcc が独自のリンク作業を行うことを要求します
詳細については、omniprog.info をご覧ください:
<ブロック引用>GCC を取り除き、clang をシステムのデフォルト コンパイラとして使用する場合は、一部の RPM ベースのシステムで調整が必要になる場合があります。 Clang はリンカーを提供しませんが、システムのリンカー (通常は ld) に依存して実行可能ファイルをリンクします。これは、Clang がデフォルトのコンパイラである FreeBSD および Mac OS X システムでも当てはまります。これは、clang++ の -v オプションを使用して確認できます。現在、次のファイルがないと ld は機能しません:
<ブロック引用>
libgcc.a
libgcc_s.so
[...]