Я новичок, но люблю приключения. Я загружаю Windows, Fedora и Ubuntu 14.04 LTS (все 64). Изучаю, но не использую dpkg, apt и apt-get. Начинаю изучать C++ с помощью Ubuntu (единственной, где установлен gcc). Поэтому при первой попытке компиляции я запустил команду gcc xy.cc
и получил следующее:
gcc: error trying to exec 'cc1plus' : execvp: No such file or directory
Поэтому я поискал на своем компьютере cc1plus и execvp. И не нашел ни того, ни другого. Только execvp.3.gz в каталоге /user/share/man/man3
и cc1 в /user/lib/gcc/x86_64-linux-gnu/4.8
.
Итак, проделана целая куча работы и изучения методов получения и проверки пакетов, но нет смелости удалить и переустановить и т. д.
У вас есть какие-нибудь предложения?
решение1
Возможно, на вашей машине отсутствует пакет g++. Откройте терминал и установите его с помощью следующей команды:
sudo apt-get install g++
Для компиляции с помощью g++ используйте это
g++ -o test.o test.cpp
g++ можно использовать для компиляции исходного кода C++, в стандартную установку Ubuntu входит gcc, но не g++.
Вы пытаетесь скомпилировать исходный код C++ с помощью компилятора C. gcc обычно успешно компилирует код C++, но по умолчанию он не связывает никакие библиотеки, специфичные для C++ (см.этот ответ на Stack Overflow).
Если отображается сообщение вида : Couldn't find package ...
, попробуйте выполнить следующие команды
sudo apt-get update && sudo apt-get upgrade
затем
sudo apt-get install g++
решение2
cc1plus — это бэкэнд C++ (настоящий компилятор) для gcc, если вы в первую очередь собираетесь программировать на C++, вам действительно нужно установить G++ (вместе с ним будет cc1plus). Используя один из интерфейсов системы пакетов apt-get, synaptic, software manager или ряд других, он установит зависимости вместе с ним.
execvp — это функция программирования, файл, который вы нашли соответствующим ей, — это страница руководства (man) для нее. Чтобы просмотреть ее, откройте терминал и введите man execvp
. Страницы руководства часто бывают онлайн, и в них содержится ТОННА информации о cli и программировании.