CMake жалуется "Идентификация компилятора CXX неизвестна"

Я следую за этой темой и за этой, чтобы создавать свой собственный KDE без разрешения sudo. Поскольку на рабочей станции не было установлено ни Git, ни CMake. Я просто установил их в / home / и добавил / home / / bin и / home / / lib в PATH и LD_LIBRARY_PATH. Поскольку сборка KDE поддерживает только CMake, не настраивать. Поэтому я должен установить префикс через CMake, например: cmake ~/kde-devel/src/kdelibs -DCMAKE_INSTALL_PREFIX=/home/<user>, В этот момент я получил ошибку ниже:

> ~/bin/cmake ~/kde-devel/src/kdelibs -DCMAKE_INSTALL_PREFIX=/home/<user>
-- The CXX compiler identification is unknown
-- Check for working CXX compiler: /home/gnu/bin/c++
-- Check for working CXX compiler: /home/gnu/bin/c++ -- broken
CMake Error at /home/<user>/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake:45 (MESSAGE):
  The C++ compiler "/home/gnu/bin/c++" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: /home/<user>/kde-devel/build/kdelibs/CMakeFiles/CMakeTmp



  Run Build Command:/usr/bin/gmake "cmTryCompileExec/fast"
  ...

Я проверил, что есть 2 компилятора C++:

> where c++
/home/gnu/bin/c++
/usr/bin/c++

Должен ли я установить компилятор C++ по умолчанию CMake в /usr/bin/c++? и как? Или есть ли способ решить эту проблему?

3 ответа

Решение

Ваш /home/gnu/bin/c++ Кажется, для правильной связи требуется дополнительный флаг, и CMake не знает об этом.

Использовать /usr/bin/c++ как работает ваш компилятор cmake с -DCMAKE_CXX_COMPILER=/usr/bin/c++,

Также, CMAKE_PREFIX_PATH переменная устанавливает каталог назначения, куда должны быть установлены файлы вашего проекта. Он не имеет ничего общего с префиксом установки CMake, и сам CMake это уже знает.

Бежать apt-get install build-essential в вашей системе.

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

Смотрите эту страницу для получения дополнительной информации.

У меня просто была эта проблема при настройке моего нового ноутбука. Проблема для меня заключалась в том, что мой набор инструментов (CodeSourcery) является 32-битным, и я не установил 32-битные библиотеки.

sudo apt-get install ia32-libs
Другие вопросы по тегам