CMake жалуется "Идентификация компилятора CXX неизвестна"
Я следую за этой темой и за этой, чтобы создавать свой собственный KDE без разрешения sudo. Поскольку на рабочей станции не было установлено ни Git, ни CMake. Я просто установил их в / home / 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