web-dev-qa-db-ja.com

configure:エラー:Cコンパイラは実行可能ファイルを作成できません

\curl -L https://get.rvm.io | bash -s stable --Ruby --autolibs=enable --auto-dotfilesを使用してrvmをインストールしようとしました。構成エラーが表示されるまで問題なく動作しました。

Error running './configure --prefix=/home/nishant/.rvm/rubies/Ruby-2.0.0-p247 --disable-install-doc --enable-shared',
please read /home/nishant/.rvm/log/1379591052_Ruby-2.0.0-p247/configure.log
There has been an error while running configure. Halting the installation.

上記のログファイルの内容は次のとおりです。

[2013-09-19 17:15:58] ./configure
current path: /home/nishant/.rvm/src/Ruby-2.0.0-p247
command(4): ./configure --prefix=/home/nishant/.rvm/rubies/Ruby-2.0.0-p247 --disable-install-doc --enable-shared
checking build system type... i686-pc-linux-gnu
checking Host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/nishant/.rvm/src/Ruby-2.0.0-p247':
configure: error: C compiler cannot create executables
See `config.log' for more details

次に、「hello world」Cプログラムを試してみましたが、コンパイル時に次のエラーが発生しました。

nishant@nishant-Inspiron-1545:~$ gcc -g -o hello hello.c 
/usr/local/bin/ld: this linker was not configured to use sysroots
collect2: error: ld returned 1 exit status

このエラーがスローされる理由はわかりません。私はフォーラムでこれに対する満足のいく答えを見つけることができませんでした。誰か助けてください。ありがとう

14
naka

/usr/local/binディレクトリ(ソースからインストールされている可能性があります)にGNUリンカーldの非標準バージョンがあり、PATH環境変数がシステムは、 'システム'バージョン(/usr/bin/ldにある必要があります)より前のバージョンを検出します。 ビルドツールの標準システムバージョンを使用してビルドする場合/usr/binの前に/usr/local/binを検索するようにPATH環境変数を調整する必要があります。

PATH変数を恒久的に修正したい場合は、元々どこで設定したかを確認する必要があります-おそらく〜/ .bashrcファイル内ですが、他の場所も可能です。また、このビルドの一時的な修正が必要な場合は、試してみることができます

export PATH="/usr/bin:$PATH"

./configureを実行する前に端末で

ただし、あなた(またはシステム管理者)が/usr/localのバージョンのツールを使用することを希望する場合には、十分な理由がある場合があります。その場合、ldが明らかにない理由を見つける必要がありますビルドチェーンの残りの部分と互換性があり、修正します。これが職場または学校のシステムである場合は、システム管理者またはIT部門に連絡してください。

12
steeldriver

上記の複雑な理由に反して、私の場合は、g++がインストールされていないという単純なケースでした。奇妙なことに、エラーメッセージはOPの説明と同じでした。

configure: error: C compiler cannot create executables

とにかく、g ++をインストールすることでこれを解決しました。

Sudo apt-get install g++
8
rahul1210

システムを更新して、ldおよびコンパイラー(-gcc)を提供するパッケージを再インストールしてください。 prelink -au && depmod -aを実行します。次に再起動します。

/etc/systemctlのprelinkを無効にするか、再構成する必要があるかもしれません。

0
user599717