Рейтинг:0

Cmake не может найти компилятор gcc

флаг nl

У меня Ubuntu 18.04.6 LTS, и я пытаюсь установить и запустить gcc v8 (по умолчанию используется версия v7).

Я сделал: sudo apt-get install build-essential

sudo apt-получить установку gcc-8

Чтобы попытаться установить v8 по умолчанию, я сделал: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8

Если я запускаю gcc -v, я получаю:

Использование встроенных спецификаций. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-обертка OFFLOAD_TARGET_NAMES=nvptx-нет OFFLOAD_TARGET_DEFAULT=1 Цель: x86_64-linux-gnu Настроено с помощью: ../src/configure -v --with-pkgversion='Ubuntu 8.4.0-1ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-8/README. Ошибки --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=- 8 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix - -libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable- gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable -objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-линукс-гну Модель потока: posix gcc версии 8.4.0 (Ubuntu 8.4.0-1ubuntu1~18.04)

Но запустив make all -j я получаю:

инициализация подмодуля git Обновление подмодуля git --init --recursive mkdir -p build && cd build && cmake .. -- CMAKE_BUILD_TYPE: выпуск -- Идентификация компилятора CXX неизвестна Ошибка CMake в CMakeLists.txt:42 (проект): CMAKE_CXX_COMPILER:

/USR/бен/С++

не является полным путем к существующему инструменту компиляции.

Сообщите CMake, где найти компилятор, установив среду переменная «CXX» или запись кэша CMake CMAKE_CXX_COMPILER на полный путь к компилятору или к имени компилятора, если оно находится в PATH.

-- Настройка не завершена, произошли ошибки!

В другом подобном посте рекомендуется build-essential, но у меня уже есть это — что мне нужно сделать, чтобы это исправить?

Большое спасибо за любую помощь!

флаг hr
Итак, вы пробовали предложенное средство установки переменной среды CXX? бывший. `export CXX=/usr/bin/g++-8` перед запуском `make`
флаг nl
Нет, не знал, я не знал, на что его установить - сделал, как вы предложили, но g++-8 не существует...
флаг hr
Вы его установили? Я так и предполагал, поскольку вы, по-видимому, добавили его как ведомое устройство с альтернативами обновления. Если вы этого не сделали, сделайте это (`sudo apt install g++-8`)
флаг nl
gcc-7, g++-7 и gcc-8 существуют, но /usr/bin/g++-8 там нет - я пропустил установку?
флаг hr
Скорее всего да - `g++-8` это отдельный пакет, установки `gcc-8` недостаточно.
флаг nl
Да пропало - установил - все равно радости нет! То же сообщение...
флаг nl
Он ищет /usr/bin/c++, который является ссылкой на /etc/alternatives/c++, который является ссылкой на /usr/bin/g++, которого не существует...
флаг cc
Взгляните на https://askubuntu.com/questions/1370061/i-am-using-ubuntu-20-04-lts-trying-to-get-from-gcc-9-4-to-gcc-10- или выше/1370140#1370140, в котором есть некоторые предложения для эквивалентной ситуации gcc.
флаг nl
Хорошо, @ubfan1, я просмотрел пост и повторно запустил альтернативные обновления, и это исправило!
флаг nl
Всем большое спасибо, компилятор найден.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.