Я пытаюсь создать решение Visual Studio с CMake для компиляции последней версии aseprite, а CMake продолжает предоставлять мне:
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
Я уже скачал GCC и использую Visual Studio 2015 .
Я следую этому руководству:
c++
visual-studio
gcc
cmake
visual-studio-2015
Кайо Фонтес
источник
источник
cmake .. -G "Visual Studio 14 2015"
илиcmake .. -G "MSYS Makefiles"
(если имеется вgcc
видуMinGW
). Я много раз видел эти вопросы (например, здесь , здесь или здесь ), и я думаю, что нам не хватает комбинированного / учебного ответа по SO.Ответы:
Эти сообщения об ошибках
или
просто означает, что CMake не смог найти ваш компилятор C / CXX для компиляции простой тестовой программы (одна из первых вещей, которые CMake пробует при обнаружении вашей среды сборки).
Действия по поиску проблемы зависят от среды сборки, которую вы хотите создать. Следующие руководства представляют собой сборник ответов здесь, на Stack Overflow, и некоторые из моих собственных опытов с CMake в Microsoft Windows 7/8/10 и Ubuntu 14.04.
Предварительные условия
У вас есть чистый каталог сборки (потому что CMake кеширует вещи с последней попытки), например, как подкаталог вашего исходного дерева
Windows cmd.exe
Оболочка Bash
и убедитесь, что ваша командная оболочка указывает на ваш недавно созданный двоичный выходной каталог.
Общие вещи, которые вы можете / должны попробовать
Может ли CMake найти и запустить с любым / вашим компилятором по умолчанию? Беги без генератора
Идеально, если он правильно определил генератор для использования - как здесь
Visual Studio 14 2015
Что на самом деле не удалось?
В выходном каталоге предыдущей сборки просмотрите
CMakeFiles\CMakeError.log
любые сообщения об ошибках, которые имеют для вас смысл, или попробуйте открыть / скомпилировать тестовый проект, созданный вCMakeFiles\[Version]\CompilerIdC
|CompilerIdCXX
непосредственно из командной строки (как указано в журнале ошибок).CMake не может найти Visual Studio
Попробуйте выбрать правильную версию генератора :
Если это не помогает, попробуйте сначала установить переменные среды Visual Studio (путь может отличаться):
или используйте ярлык в
Developer Command Prompt for VS2015
меню «Пуск» Windows в разделеAll Programs
/Visual Studio 2015
/Visual Studio Tools
(спасибо @Antwane за подсказку).Справочная информация : CMake поддерживает все выпуски и варианты Visual Studio (Express, Community, Professional, Premium, Test, Team, Enterprise, Ultimate и т. Д.). Чтобы определить местонахождение компилятора, он использует комбинацию поиска в реестре (например, в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir
), переменных системной среды и - если никто из других ничего не придумал - просто пытается вызвать компилятор.CMake не может найти GCC (MinGW / MSys)
Вы запускаете
bash
оболочку MSysmsys.bat
и просто пытаетесь напрямую вызватьgcc
Здесь он нашел
gcc
и жалуется, что я не дал ему никаких параметров для работы.Итак, должно работать следующее:
Если GCC не найден, вызовите
export PATH=...
добавление пути к вашему компилятору (см. Как установить переменную среды PATH в сценарии CMake? ) И повторите попытку.Если он по-прежнему не работает, попробуйте установить
CXX
путь компилятора напрямую, экспортировав его (путь может отличаться)Подробнее см. Как указать новый путь GCC для CMake.
Примечание : при использовании генератора "MinGW Makefiles" вы должны использовать
mingw32-make
программу, поставляемую с MinGW.Все еще не работает? Это странно. Убедитесь, что компилятор есть и у него есть права на исполнение (см. Также главу о предварительных условиях выше).
В противном случае последнее средство CMake - не пытаться самостоятельно выполнить поиск компилятора и установить внутренние переменные CMake напрямую с помощью
Для получения дополнительной информации см. Cmake не соблюдает -D CMAKE_CXX_COMPILER = g ++ и компилятор настройки ошибок Cmake.
В качестве альтернативы эти переменные также могут быть установлены через
cmake-gui.exe
Windows. См. Cmake не может найти компиляторПредыстория : почти такая же, как и в Visual Studio. CMake поддерживает всевозможные разновидности GCC. Он ищет переменные среды (CC, CXX и т. Д.) Или просто пытается вызвать компилятор. Кроме того , он обнаружит какие - либо префиксы (при кросс-компиляции ) и пытается добавить его ко всем Binutils компилятора GNU (набора инструментов
ar
,ranlib
,strip
,ld
,nm
,objdump
, иobjcopy
).источник
Для Ubuntu установите следующие вещи:
источник
Это случилось со мной после того, как я установил Visual Studio 15 2017.
Компилятор C ++ для Visual Studio 14 2015 не был проблемой. Похоже, это проблема с Windows 10 SDK.
Добавление Windows 10 SDK в Visual Studio 14 2015 решило для меня проблему.
См. Прикрепленный снимок экрана.
источник
Я также столкнулся с этой ошибкой при работе с CMake:
Поле с предупреждением в статье библиотеки MSDN Visual C ++ в Visual Studio 2015 предоставило мне необходимую помощь.
Visual Studio 2015 по умолчанию не поставляется с C ++. Итак, при создании нового проекта C ++ вам будет предложено загрузить необходимые компоненты C ++.
источник
У меня это работает в Ubuntu 17.10 (Artful Aardvark):
источник
Я столкнулся с этой проблемой при сборке libgit2-0.23.4. Для меня проблема заключалась в том, что компилятор C ++ и связанные с ним пакеты не были установлены с VS2015, поэтому файл "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" отсутствовал, и Cmake не смог найти компилятор.
Я попытался вручную создать проект C ++ в графическом интерфейсе Visual Studio 2015 ( C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe ), и при создании проекта мне было предложено загрузить C ++ & сопутствующие пакеты.
После загрузки необходимых пакетов я мог видеть, что vcvarsall.bat и Cmake смогли найти компилятор и успешно выполнить его со следующим журналом:
источник
У меня были такие же ошибки с CMake. В моем случае я использовал неправильную версию Visual Studio в начальном диалоговом окне CMake, где мы должны выбрать компилятор Visual Studio.
Затем я изменил его на «Visual Studio 11 2012», и все заработало. (У меня на компьютере установлена версия Visual Studio Ultimate 2012). В общем, попробуйте ввести более старую версию Visual Studio в диалоговое окно начальной конфигурации CMake.
источник
Для меня эта проблема исчезла в Windows, когда я переместил свой проект в более мелкий родительский каталог, то есть в:
C:\Users\spenc\Desktop\MyProjectDirectory
вместо того
C:\Users\spenc\Desktop\...\MyProjectDirectory
.Я думаю, что источником проблемы было то, что MSBuild имеет ограничение на длину пути к файлу до 260 символов. Это приводит к тому, что основной тест компилятора, который выполняет CMake, создает проект, вызываемый
CompilerIdCXX.vcxproj
сбой с ошибкой:C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'
потому что длина пути к файлу, например
C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp
превышает ограничение MAX_PATH.
Затем CMake заключает, что компилятора CXX нет.
источник
Убедитесь, что вы выбрали правильную версию Visual Studio. Это сложнее, чем кажется, потому что Visual Studio 2015 на самом деле является Visual Studio 14, а Visual Studio 2012 - это Visual Studio 11. Я неправильно выбрал Visual Studio 15, которая на самом деле является Visual Studio 2017, когда у меня был установлен 2015.
источник
Ни одно из решений здесь не решает мою проблему - только когда я устанавливаю Центр обновления Windows для универсальной среды выполнения C.
Теперь CMake работает и больше не виснет ссылка из Visual Studio.
Обновление для универсальной среды выполнения C в Windows
источник
Вы также можете убедиться, что вы являетесь пользователем sudo и имеете доступ на ЧТЕНИЕ / ЗАПИСЬ к каталогу, с которым вы работаете. У меня была аналогичная проблема в OS X, и я решил ее, просто войдя в режим sudo.
источник
На всякий случай это поможет кому-то вроде меня в будущем:
У меня была эта проблема в течение 24 часов на 3 разных 64-битных машинах (Win7, Windows 8.1 VM и ноутбук WIn 8.1) - при попытке собрать WebKit с VS 2017.
Проблема здесь в том, что компилятор VC ++ (т.е. cl.exe и его зависимые библиотеки DLL) не виден для CMake. Просто. Сделав папки VC ++, содержащие эти двоичные файлы, видимыми для CMake и вашей рабочей командной строки (если вы запускаете Cmake из командной строки), вуаля! (В дополнение к ключевым вопросам, поднятым другими выше)
В любом случае, после всевозможных исправлений - как было опубликовано на этих многочисленных форумах - я обнаружил, что это просто вопрос обеспечения того, чтобы содержимое переменной PATH не было загромождено несколькими путями Visual Studio BIN и т. Д .; а вместо этого указывает на:
а) расположение вашего компилятора (т.е. cl.exe для вашей предпочтительной версии Visual Studio), который в моем случае (ориентированный на 64-разрядную платформу и разработка на 64-разрядном хосте): C: \ Program Files (x86 ) \ Microsoft Visual Studio \ 2017 \ Сообщество \ VC \ Tools \ MSVC \ 14.15.26726 \ bin \ Hostx64 \ x64
б) и, кроме того, папка, содержащая зависимую DLL с именем (от которой зависит cl.exe): api-ms-win-crt-runtime-l1-1-0.dll которая на моем компьютере:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Remote Debugger \ x64
Эти два каталога, добавленные в упрощенную переменную CUSTOM System Path (работающую в режиме командной строки с привилегиями администратора), устранили мои сообщения «CMAKE_C_COMPILER не может быть найден» и «CMAKE_CXX_COMPILER не может быть найден». ошибки.
Надеюсь, это кому-то поможет.
источник
Я получаю именно ту ошибку, о которой сообщалось, если ccache включен, при использовании генератора Xcode CMake . Отключение ccache устранило проблему для меня. Ниже я представляю исправление / проверку, которая работает для MacOS, но должна работать аналогично на других платформах.
По-видимому, можно использовать генератор Xcode CMake (и другие) также в сочетании с ccache, как описано здесь . Но сам никогда не пробовал.
источник
Я обновил Visual Studio 2015 с обновлением 2 до Visual Studio 2015 с обновлением 3, и это решило мою проблему.
источник
У меня была такая же проблема с cmake-gui (
No CMAKE_CXX_COMPILER could be found.
), хотя запуск CMake из командной строки работал нормально. После добавления записей вручнуюC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
в переменную среды PATH, это сработало для меня.
источник
Для меня он работал , чтобы использовать Developer Command Prompt , который поставляется с Visual Studio , а затем просто
cd
чтобыyour/jcef/dir
и запуститьcmake -G "Visual Studio 14 Win64" ..
источник
У меня такая же проблема.
Я пытался установить dlib на свой компьютер, и это дало мне эту ошибку. Учебник, упомянутый в вопросе, приводит к загрузке Visual Studio 2017. Я решил это, удалив VS 2017 и установив VS 2015
Можно установить VS 2015 через этот поток stackoverflow: Как загрузить Visual Studio Community Edition 2015 (не 2017)
источник
Я знаю, что этот вопрос касается Visual Studio 2015. Я столкнулся с этой проблемой с Visual Studio 2017. При поиске в Google я попал на эту страницу. Посмотрев на первые 2,3 ответа, я понял, что это проблема с установкой vc ++. Установка рабочей нагрузки «Разработка настольных компьютеров на c ++» решила проблему.
источник
Посмотрите в Cmakelists.txt, если вы найдете ARM, вам необходимо установить C ++ для ARM.
Это такие пакеты:
Универсальная платформа Windows C ++ для ARM64 «Не требуется»
Компиляторы и библиотеки Visual C ++ для ARM «Не требуется»
Компиляторы и библиотеки Visual C ++ для ARM64 «Очень вероятно, требуются»
Тогда проблемы
Не удалось найти CMAKE_C_COMPILER.
Не удалось найти CMAKE_CXX_COMPILER.
Может исчезнуть, если вы не укажете компилятор c, например clang, и, возможно, установка clang будет работать в другом направлении.
Вы можете с необязательным удалением в cmakelists.txt и с # перед enable_language, если вы не компилируете для ARM.
источник