web-dev-qa-db-ja.com

gcc-エラー:$ PATHに許容できるCコンパイラが見つかりません

ソースからGCCをインストールしようとしています。私は https://gcc.gnu.org/wiki/InstallingGCC のwikiの指示に従い、さらに SOに関するこの質問 の指示に従っています。実行時に構成ステップで問題が発生しています:

$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2

次の出力とエラーが表示されます。

checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for libatomic support... yes
checking for libcilkrts support... no
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libmpx support... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/bin/objdir':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

Cコンパイラがインストールされていないためにエラーが発生したようです。 Cコンパイラをインストールしていないので、GCCをインストールするとどうなるのですか?このエラーについて見つけることができるすべての解決策は、GCCをインストールする必要があることを示しています。GCCをインストールする必要がある場合、どうすればGCCをインストールできますか?

$ PATH変数をexport PATH=$PATH:/usr/bin/gcc-4.6.2を使用して更新しましたが、役に立ちませんでした。私もこの同様の質問を見ましたが、成功しませんでした: https://unix.stackexchange.com/questions/310669/c-compiler-while-installing-gcc

何か足りないものはありますか? GCCをインストールするには、他に何ができますか?

注:これらのタイプのインストーラーソフトウェアがインストールされていないカスタムディストリビューションを使用しているため、yumまたはapt-getを使用してインストールすることはできません。

2
Gerald Murphy

GCC自体はCで記述されています。したがって、GCCをインストールするには、Cコンパイラが必要です。これはキャッチ22です。何も不足していません。実際、関連する側面について、 かなり有名なケントンプソンのエッセイ「信頼を信頼することについての反省」 があります。

どこかからCコンパイラを入手する必要があります。あなたがそれなしでLinuxカーネルを構築することもできないので、あなたがカスタムディストリビューションを作った人は誰でも確かにそれを持っていました。彼らはそれをどこかで利用できるようにすべきです。

それ以外は、コンパイラーをインストールできるディストリビューションからgcc(およびbinutils、Cライブラリヘッダーなど)をクロスコンパイルする必要があります。これは、誰かが新しいプラットフォーム用のディストリビューションを構築する方法です。プラットフォームが組み込まれている場合、誰もがデバイス自体でgccを実行することを期待せず、代わりにデバイスに必要なソフトウェアをクロスコンパイルすることを期待することも可能です。その場合、組み込みディストリビューションは、使用するクロスコンパイラーを提供する必要があります。

2
derobert

Windows 10でUbuntuサブシステムを使用しているときにこの問題が発生し、次のようにして解決しました。

Sudo apt-get update 
Sudo apt install build-essential

または、2番目のコマンドをより具体的にすることもできます。

Sudo apt install gcc
0
Schroeder