Po zainstalowaniu programu Visual Studio 2015 i uruchomieniu CMake w poprzednim projekcie CMake wystąpił błąd informujący, że nie mógł znaleźć kompilatora C.
The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:4 (PROJECT):
No CMAKE_C_COMPILER could be found.
CMake Error at CMakeLists.txt:4 (PROJECT):
No CMAKE_CXX_COMPILER could be found.
Szukałem cl.exe
w folderze Visual Studio C:\Program Files\Microsoft Visual Studio 14.0
i nie mogłem go znaleźć.
Jak skonfigurować CMake do pracy w systemie Windows z programem Visual Studio 2015?
c++
cmake
visual-studio-2015
Asher
źródło
źródło
PATH
programu, którego potrzebuje, więc jeśli nie jest zaktualizowany, nie może znaleźć kompilatora.Odpowiedzi:
Znalazłem rozwiązanie. Mimo pomyślnego zainstalowania środowiska IDE programu Visual Studio nie zainstalowano żadnych narzędzi do kompilacji i dlatego nie zainstalowano kompilatora C ++.
Próbując ręcznie utworzyć projekt C ++ w GUI Visual Studio 2015 , mogłem skłonić go do pobrania pakietów C ++. CMake był wtedy w stanie znaleźć kompilator bez żadnych trudności.
źródło
Oto rozwiązanie, które zadziałało dla mnie:
Miejmy nadzieję, że powinno działać bez problemów.
źródło
cmake ..
stamtąd uruchomić . Mimo to głosowano za, ponieważ na przykład terminal git-bash nie umieszcza automatycznie wszystkiego na swojej drodze. To mi pomogło!Zajrzałem do pliku CMakeError.log i znalazłem błąd dotyczący
cannot run 'rc.exe'
Przeszukałem i znalazłem tę odpowiedź, aby skopiować RC.Exe i RcDll.Dll z bin Microsoft SDKs do bin VC, a następnie CMake działał.
Edycja: Najlepsza odpowiedź na inne pytanie sugeruje, że jest to problem ze ŚCIEŻKĄ, więc może wystarczyć, aby upewnić się, że bin SDK firmy Microsoft znajduje się w PATH.
źródło
Upewnij się, że w generatorze używasz poprawnej wersji programu Visual Studio. Podczas instalacji programu Visual Studio 14 nieprawidłowo wybrałem program Visual Studio 15.
źródło
Ci, którzy potykają się z tym w programie Visual Studio 2017: istnieje funkcja związana z CMake, którą należy wybrać i zainstalować wraz z odpowiednimi zestawami narzędzi kompilatora. Zobacz zrzut ekranu poniżej.
źródło
Jeśli żadne z powyższych rozwiązań nie zadziałało, zatrzymaj się i przeprowadź kontrolę poczytalności.
Zostałem spalony przy użyciu niewłaściwego
-G <config>
sznurka i dał mi ten błąd.Najpierw uruchom z wiersza polecenia VS, a nie zwykłego wiersza polecenia. Możesz go znaleźć w
Start Menu -> Visual Studio 2015 -> MSBuild Command Prompt for VS2015
To ustawia wszystkie prawidłowe ścieżki do narzędzi VS, itp.Teraz zobacz, jakie generatory są dostępne w cmake ...
cmake -help
...<snip>... The following generators are available on this platform: Visual Studio 15 [arch] = Generates Visual Studio 15 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files. Optional [arch] can be "Win64" or "ARM". Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files. Optional [arch] can be "Win64" or "IA64". ...
Następnie wybierz odpowiedni ciąg z dodanym [arch].
mkdir _build cd _build cmake .. -G "Visual Studio 15 Win64"
Uruchomienie cmake w podkatalogu ułatwia „wyczyszczenie”, ponieważ można po prostu usunąć wszystko w tym katalogu.
Uaktualniłem do Visual Studio 15, ale nie zwracałem uwagi i próbowałem wygenerować na 2012 rok.
źródło
U mnie sprawdziłem
CMakeError.log
plik i znalazłem:Dzieje się tak pomimo używania programu Visual Studio 2017 w systemie Windows 7. Wygląda więc na to, że CMake próbuje zbudować swój projekt wykrywania za pomocą zestawu SDK systemu Windows 8.1.
Użyłem instalatora Visual Studio, aby dodać ten składnik, a teraz CMake jest szczęśliwy jak małżonek.
źródło
Menu → Visual Studio 2015 → MSBuild Command Prompt for Visual Studio 2015. Następnie CMake może znaleźć
cl.exe
.Zmień górną ścieżkę do miejsca, w którym jest zainstalowany zestaw Windows SDK.
CMake może znaleźć
rc.exe
.cd do ścieżki
CMakeLists.txt
i wykonaj:Parametr po
-G
powinien zostać pobrany przez CMake. Użyj--help
; możesz mieć generator lub nie.źródło
Napotkałem ten sam problem i naprawiłem go, ponownie uruchamiając instalację programu Visual Studio i sprawdzając następującą opcję:
Windows and Web Development
/Universal Windows App Development Tools
/Windows 10 SDK
Zawiera standardowe nagłówki C ++ używane w większości aplikacji i dlatego często konieczne jest również jego zainstalowanie.
źródło
Miałem ten problem pod Windows 10 podczas korzystania z Visual Studio 2015 Professional, podczas gdy Visual Studio 2015 Express działało! W systemie Windows 7 działały obie wersje programu Visual Studio.
Nowe projekty utworzone z Visual Studio 2015 Professional IDE pomyślnie kompilują się, ale CMake nie może znaleźć raportowania kompilatora:
Zaktualizowałem CMake z 3.4.1 do 3.11.4 i teraz problem zniknął.
źródło
Jeśli korzystasz z programu Visual Studio 2017, potrzebujesz co najmniej CMake 3.8!
źródło
Podobny problem miałem z projektem Visual Studio 2017 wygenerowanym przez CMake. Brakowało niektórych pakietów podczas instalowania programu Visual Studio w programie Desktop w języku C ++. Zobacz migawkę:
Pakiety programu Visual Studio 2017:
Zaktualizuj CMake do najnowszej wersji.
źródło
W moim przypadku była ustawiona zmienna środowiskowa, która była przyczyną tego błędu. Problem został rozwiązany po usunięciu cxx_flags ze zmiennych środowiskowych.
źródło
Mam ten problem z CMake 3.12.1 po aktualizacji Visual Studio 2017. Po prostu ponownie uruchomiłem CMake i zadziałało.
źródło
W moim przypadku widziałem,
CMakeError.log
że CMake nie może znaleźć zestawu Windows SDK (MSB8003: Could not find WindowsSDKDir variable from the registry
).Wersję można określić w wierszu polecenia przy pierwszym uruchomieniu CMake za pomocą:
Po ustawieniu tego poszedłem dalej, ale później napotkałem więcej problemów (więc zakładam, że moje środowisko jest w jakiś sposób pomieszane), ale może to pomoże komuś z tym problemem.
źródło
Kilka wskazówek:
Mój problem był kombinacją wcześniej stwierdzonych: Ustawiłem wersję kompilatora na 15 zamiast 14 i po poprawieniu musiałem usunąć pamięć podręczną.
Jako administrator uruchomiłem również wiersz poleceń programu Visual Studio i stamtąd uruchomiłem cmake-gui.exe
Wtedy wszystko działało tak, jak powinno.
źródło
W moim przypadku problem polegał na tym, że projekt nadrzędny, który zawiera googletest via
został zdefiniowany jako
W jakiś sposób CMake nie rozpoznaje
ponieważ kompilator C nie jest ustawiony w rodzicu.
Rozwiązałem problem za pomocą
w moim głównym
CMakeLists.txt
pliku.źródło
Może to być inne rozwiązanie dla osób z najnowszą wersją twórcy systemu Windows 10:
Przepełnienie stosu po błędzie krytycznym LNK1104: nie można otworzyć pliku „gdi32.lib”
źródło
Żadne z poprzednich rozwiązań nie zadziałało. Jednak zauważyłem, że chociaż zainstalowałem Visual Studio w wersji 15 (nie mylić z Visual Studio 2015), katalog utworzony na moim komputerze był przeznaczony dla Visual Studio 14.
Kiedy określiłem Visual Studio 14, po naciśnięciu przycisku konfiguracji zadziałało.
źródło
Znalazłem to rozwiązanie w stackoverflow i pracuję dla mnie, chociaż nie działają inne rozwiązania, jeśli masz system operacyjny Windows 10, wykonanie następujących kroków rozwiąże problem:
1) przejdź do C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Bin
2) następnie skopiuj RC.exe i RcDll z tego pliku
3) przejdź do C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin i wklej do niego dwa skopiowane pliki.
to wszystko, mam nadzieję, że to pomoże ...
źródło
Poszukaj w Cmakelists.txt, jeśli znajdziesz ARM, musisz zainstalować C ++ dla ARM, a także vcvarsall.bat użyć dla folderu bin ARM.
To te pakiety:
C ++ Universal Windows Platform for ARM64 „niewymagane”
Kompilatory Visual C ++ i biblioteki dla ARM „niewymagane”
Kompilatory Visual C ++ i biblioteki dla ARM64 „bardzo prawdopodobne wymagane”
Wtedy problemy mogą zniknąć:
Nie znaleziono CMAKE_C_COMPILER.
Nie znaleziono CMAKE_CXX_COMPILER.
Jeśli powyższe nie rozwiąże Twojego problemu?
Opcjonalnie możesz usunąć opcje C i CXX w cmakelists.txt, ustawiając # infront miejsca, w którym znajduje się enable_language (C). I unikaj kompilacji procesora Android ARM.
źródło
Rozwiązanie rozwiązane przez dodanie brakującego komponentu Modyfikuj-> kontynuuj dodawanie w następujący sposób
źródło
Miałem podobny problem: generatorów Visual C ++ nie było nawet na liście podczas pracy
cmake --help
.Uruchomiłem
where cmake
w konsoli i odkryłem, że cygwin udostępnia również swój własny plik cmake.exe , który był używany. Zmiana kolejności katalogów w PATH rozwiązała problem.źródło
Sprawdzanie CMakeErrors.log w CMakeFiles zwróciło:
Błąd oznacza, że narzędzia do budowania dla XP (v140_xp) nie są zainstalowane. Aby to naprawić, zainstalowałem odpowiednią funkcję w instalatorze programu Visual Studio 2019 w zakładce poszczególne składniki:
źródło
Miałem ten problem z GUI CMake i VS 21019 Community Edition. Myślę, że mogłem zainstalować CMake przed Visual Studio - z pewnością po zaktualizowaniu CMake 3.15.2 do 3.15.3 problem zniknął.
źródło
Sprawdź, czy folder z nazwą jest za długi, czy nie.
źródło
Ponieważ CMake nie może znaleźć kompilatora programu Visual Studio. Uruchom dowolny projekt, który pobierze wymagane kompilatory, a CMake musi być w stanie go wtedy znaleźć.
źródło