Intereting Posts

Ошибка компиляции: «g ++: ошибка при попытке выполнить« cc1plus »: execvp: нет такого файла или каталога"

Когда я компилирую программу C / C ++ с popen в php … Я получил эту ошибку:

 g++: error trying to exec 'cc1plus': execvp: No such file or directory 

но если я запустил php-код в оболочке .. он отлично работает ..

в Arch Linux ..

Код PHP:

 <?php function rfile($fp) { $out=""; while (!feof($fp)) { $out.= fgets($fp, 1024000); } return $out; } $p = popen('g++ -Wall -g aplusb.cc -o aplusb 2>&1', 'r'); $result = rfile($p); pclose($p); echo $result; ?> 

благодаря

Solutions Collecting From Web of "Ошибка компиляции: «g ++: ошибка при попытке выполнить« cc1plus »: execvp: нет такого файла или каталога""

Вам нужно установить пакет gcc-c++ .

 yum install gcc-c++ 

Я не знаю, почему, но я просто переименовал свой исходный файл COLARR.C в colarr.c, и ошибка исчезла! возможно, вам это нужно

 sudo apt-get install g++ 

Эта проблема может возникнуть, если установлены разные версии g ++ и gcc.

  g++ --version gcc --version 

Если они не дают результата, у вас, вероятно, есть несколько версий gcc. Вы можете проверить, используя:

  dpkg -l | grep gcc | awk '{print $2}' 

Обычно, / usr / bin / gcc будет привязано к / etc / alternatives / gcc, которое снова имеет сим-связь, чтобы сказать /usr/bin/gcc-4.6 или /usr/bin/gcc-4.8 (Если у вас есть gcc-4.6, gcc-4.8.)

Изменяя эту ссылку, вы можете заставить gcc и g ++ работать в одной и той же версии, и это может решить вашу проблему!

Каждый компилятор имеет свой собственный каталог libexec /. Обычно каталог libexec содержит небольшие вспомогательные программы, называемые другими программами. В этом случае gcc ищет собственный компилятор 'cc1'. Ваша машина может содержать разные версии gcc, и каждая версия должна иметь свой собственный «cc1». Обычно эти компиляторы расположены на:

 /usr/local/libexec/gcc/<architecture>/<compiler>/<compiler_version>/cc1 

Аналогичный путь для g ++. Выше ошибки означает, что текущая версия gcc не может найти свой собственный компилятор cc1. Обычно это указывает на проблему PATH.

У меня была такая же проблема при работе с «python»; основная причина заключается в том, что путь поиска относительный, если вы не вызываете g++ как /usr/bin/g++ , он не сможет выработать канонические пути для вызова cc1plus .

Установите g ++ при запуске openSuSE

 zypper in gcc-c++ 

У меня была такая же проблема с gcc «gnat1», и это было из-за неправильного пути. Gnat1 был в версии 4.6, но я выполнял версию 4.8.1, которую я установил. В качестве временного решения я скопировал gnat1 из 4.6 и вставил его в папку 4.8.1.

Путь к gcc на моем компьютере – / usr / lib / gcc / i686-linux-gnu /

Вы можете найти путь, используя команду find:

 find /usr -name "gnat1" 

В вашем случае вы будете искать cc1plus:

 find /usr -name "cc1plus" 

Конечно, это быстрое решение, и более твердый ответ – это исправление неисправного пути.