Configure: ошибка: компилятор C не может создавать исполняемые файлы

Я пытался установить rvm с помощью \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles. Это работало нормально, пока я не получил сообщение об ошибке настройки:

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.logThere has been an error while running configure. Halting the installation.

Ниже приводится содержимое упомянутого файла журнала:

[2013-09-19 17:15:58] ./configurecurrent path: /home/nishant/.rvm/src/ruby-2.0.0-p247command(4): ./configure --prefix=/home/nishant/.rvm/rubies/ruby-2.0.0-p247 --disable-install-doc --enable-sharedchecking build system type... i686-pc-linux-gnuchecking host system type... i686-pc-linux-gnuchecking target system type... i686-pc-linux-gnuchecking for gcc... gccchecking whether the C compiler works... noconfigure: error: in `/home/nishant/.rvm/src/ruby-2.0.0-p247':configure: error: C compiler cannot create executablesSee `config.log' for more details

Затем я попробовал программу на языке Си "hello world" и получил следующую ошибку при компиляции:

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

Я не уверен, почему возникает эта ошибка. Я не смог найти удовлетворительного ответа на этот вопрос на форуме. Не мог бы кто-нибудь, пожалуйста, помочь.Спасибо

Похоже, у вас есть нестандартная версия компоновщика GNU ld В вашем /usr/local/bin каталог (возможно, установленный из исходного кода), и ваша переменная окружения PATH установлена таким образом, чтобы система находила эту версию перед версией "system" (которая должна быть в /usr/bin/ld). Если вы хотите выполнить сборку с использованием стандартных системных версий инструментов сборки, вам нужно будет настроить переменную среды PATH таким образом, чтобы она выполняла поиск /usr/bin впереди /usr/local/bin

Если вы хотите навсегда исправить свою переменную PATH, вам нужно будет выяснить, где вы установили ее изначально - вероятно, в вашем файле ~/.bashrc, но возможны и другие расположения. В качестве альтернативы, если вам просто нужно временное исправление для этой сборки, вы можете попробовать

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

в терминале перед выполнением ./configure

Однако иногда существуют веские причины, по которым вы (или ваш системный администратор) можете захотеть, чтобы вы использовали версии инструментов из /usr/local - если это так, то вам нужно будет выяснить, почему ld очевидно, что это несовместимо с остальной цепочкой сборки и исправьте это - если это рабочая или школьная система, обратитесь к своему системному администратору или в ИТ-отдел.

Вопреки сложным причинам, приведенным выше, в моем случае это был просто случай отсутствия g++ установленный. Как ни странно, сообщение об ошибке было таким же, как описано в OP, т.е.

configure: error: C compiler cannot create executables

В любом случае, я решил эту проблему, установив g++:

sudo apt-get install g++

Попробуйте обновить систему, переустановите пакеты, обеспечивающие лд и компилятор (ссз). Запускайте prelink -au && depmod -a. Затем перезагрузитесь.

Возможно, вам потребуется отключить или перенастроить предварительную ссылку в /etc/systemctl или где бы ваши дистрибутивы ни устанавливали это.

Я получил эту ошибку, когда я ошибочно указал CXXFLAGS для CPPFLAGS при запуске скрипта ‘./configure’. Таким образом, сообщение об ошибке не объясняет точную ошибку.