Projekty CMake w Visual Studio
CMake to międzyplatformowe narzędzie typu open source do definiowania procesów kompilacji uruchamianych na wielu platformach. W tym artykule założono, że znasz narzędzie CMake. Aby uzyskać więcej informacji na temat narzędzia CMake, zobacz dokumentację narzędzia CMake. Samouczek CMake jest dobrym punktem wyjścia, aby dowiedzieć się więcej.
Uwaga
Narzędzie CMake stało się coraz bardziej zintegrowane z Visual Studio w ciągu ostatnich kilku wersji. Aby wyświetlić dokumentację preferowanej wersji Visual Studio, użyj kontrolki selektora wersji. Znajduje się on w górnej części spisu treści na tej stronie.
Natywna obsługa narzędzia CMake Visual Studio umożliwia edytowanie, kompilowanie i debugowanie projektów CMake w Windows, Podsystem Windows dla systemu Linux (WSL) i systemów zdalnych z tego samego wystąpienia Visual Studio. Pliki projektu CMake (takie jak CMakeLists.txt
) są używane bezpośrednio przez Visual Studio na potrzeby funkcji IntelliSense i przeglądania. cmake.exe
jest wywoływany bezpośrednio przez Visual Studio dla konfiguracji i kompilacji narzędzia CMake.
Instalacja
Narzędzia CMake języka C++ dla Windows są instalowane w ramach programowania aplikacji klasycznych za pomocą obciążeń C++ i Linux Development with C++. Do opracowywania narzędzi CMake dla Windows i programowania w systemie Linux za pomocą języka C++ wymagane są zarówno narzędzia CMake dla wielu platform.
Aby uzyskać więcej informacji, zobacz Instalowanie obciążenia C++ Linux w Visual Studio.
Integracja środowiska IDE
Po otwarciu folderu zawierającegoCMakeLists.txt
plik są wykonywane następujące czynności.
Visual Studio dodaje elementy narzędzia CMake do menu Project z poleceniami do wyświetlania i edytowania skryptów narzędzia CMake.
Eksplorator rozwiązań wyświetla strukturę folderów i pliki.
Visual Studio uruchamia narzędzie CMake i generuje plik pamięci podręcznej CMake (
CMakeCache.txt
) dla konfiguracji domyślnej. Wiersz polecenia narzędzia CMake jest wyświetlany w oknie danych wyjściowych wraz z innymi danymi wyjściowymi narzędzia CMake.W tle Visual Studio zaczyna indeksować pliki źródłowe w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji itd. Podczas pracy Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby zachować synchronizację indeksu ze źródłami.
Uwaga
Począwszy od Visual Studio 2022 w wersji 17.1 (wersja zapoznawcza 2), jeśli folder nie zawiera katalogu głównegoCMakeLists.txt
, zostanie wyświetlony monit o włączenie integracji narzędzia CMake. Aby uzyskać więcej informacji, zobacz CMake partial activation (Aktywacja częściowa narzędzia CMake).
Gdy generowanie pamięci podręcznej narzędzia CMake zakończyło się pomyślnie, możesz również wyświetlać projekty uporządkowane logicznie według elementów docelowych. Wybierz przycisk Wybierz widok na pasku narzędzi Eksplorator rozwiązań. Z listy w Eksplorator rozwiązań — Widoki wybierz pozycję Widok obiektów docelowych narzędzia CMake i naciśnij klawisz Enter, aby otworzyć widok obiektów docelowych:
Wybierz przycisk Pokaż wszystkie pliki w górnej części Eksplorator rozwiązań, aby wyświetlić wszystkie dane wyjściowe wygenerowane przez narzędzie CMake w out/build/<config>
folderach.
CMakeLists.txt
Użyj pliku w każdym folderze projektu tak samo jak w każdym projekcie CMake. Możesz określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i konsolidatora oraz określić inne informacje związane z systemem kompilacji. Aby uzyskać więcej informacji na temat usług językowych CMake udostępnianych przez Visual Studio, zobacz Edytowanie plików CMakeLists.txt.
Visual Studio używa pliku konfiguracji narzędzia CMake do generowania i kompilowania pamięci podręcznej CMake. Aby uzyskać więcej informacji, zobacz Konfigurowanie projektów CMake i Kompilowanie projektów CMake.
Aby przekazać argumenty do pliku wykonywalnego w czasie debugowania, możesz użyć innego pliku o nazwie launch.vs.json
. Aby uzyskać więcej informacji na temat debugowania międzyplatformowych projektów CMake w Visual Studio, zobacz Debugowanie projektów CMake.
Większość funkcji języka Visual Studio i C++ jest obsługiwana przez projekty CMake w Visual Studio. Przykłady:
Uwaga
W przypadku innych rodzajów projektów Open Folder jest używany dodatkowy plik CppProperties.json
JSON. Ten plik nie jest istotny dla projektów CMake.
Konfigurowanie projektów CMake
Krok konfiguracji narzędzia CMake generuje system kompilacji projektu. Jest to równoważne wywołaniu cmake.exe
z wiersza polecenia. Aby uzyskać więcej informacji na temat kroku konfiguracji narzędzia CMake, zobacz dokumentację narzędzia CMake.
Visual Studio używa pliku konfiguracji narzędzia CMake do generowania i kompilowania narzędzia CMake. CMakePresets.json
program jest obsługiwany przez program Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake. CMakePresets.json
program jest obsługiwany bezpośrednio przez narzędzie CMake i może służyć do generowania i kompilowania narzędzia CMake z Visual Studio, z VS Code, w potoku ciągłej integracji i z wiersza polecenia w Windows, Linux i Mac. Aby uzyskać więcej informacji na temat CMakePresets.json
programu , zobacz Configure and build with CMake Presets (Konfigurowanie i kompilowanie przy użyciu ustawień wstępnych narzędzia CMake). CMakeSettings.json
jest dostępna dla klientów korzystających z wcześniejszej wersji Visual Studio. Aby uzyskać więcej informacji na CMakeSettings.json
temat programu , zobacz Dostosowywanie ustawień kompilacji narzędzia CMake.
Po wprowadzeniu znaczących zmian w pliku konfiguracji narzędzia CMake lub CMakeLists.txt
pliku Visual Studio automatycznie uruchomi krok konfiguracji narzędzia CMake. Krok konfigurowania można wywołać ręcznie: wybierz pozycję Project > Skonfiguruj pamięć podręczną na pasku narzędzi. Możesz również zmienić preferencje konfiguracji w obszarze NarzędziaOpcjeCMakeOgólne.>>>
Jeśli krok konfigurowania zakończy się bez błędów, informacje dostępne dyski C++ IntelliSense i usługi językowe. Jest on również używany w operacjach kompilacji i debugowania.
Możesz również otworzyć istniejącą pamięć podręczną narzędzia CMake w Visual Studio. Aby uzyskać więcej informacji, zobacz Otwieranie istniejącej pamięci podręcznej.
Dostosowywanie opinii i powiadomień dotyczących konfiguracji
Domyślnie większość komunikatów konfiguracji jest pomijana, chyba że wystąpi błąd. Aby wyświetlić wszystkie komunikaty, wybierz pozycję NarzędziaOpcjeCMakeEnable>>>pełne dane wyjściowe diagnostyki narzędzia CMake.
Możesz również wyłączyć wszystkie powiadomienia pamięci podręcznej CMake (złote paski), usuwając zaznaczenie pozycji Pokaż powiadomienie pamięci podręcznej narzędzia CMake.
Rozwiązywanie problemów z błędami pamięci podręcznej narzędzia CMake
Jeśli potrzebujesz więcej informacji na temat stanu pamięci podręcznej CMake w celu zdiagnozowania problemu, otwórz menu główne Project lub CMakeLists.txt
menu kontekstowe w Eksplorator rozwiązań, aby uruchomić jedno z następujących poleceń:
Widok CMakeCache.txt otwiera
CMakeCache.txt
plik z katalogu kompilacji w edytorze. Wszystkie zmiany w tym miejscuCMakeCache.txt
zostaną wyczyszczone, jeśli wyczyścisz pamięć podręczną. Aby wprowadzić zmiany, które są utrwalane po wyczyszczeniu pamięci podręcznej, zobacz Dostosowywanie ustawień narzędzia CMake lub Konfigurowanie i kompilowanie przy użyciu ustawień wstępnych narzędzia CMake.Usunięcie pamięci podręcznej i ponowne skonfigurowanie powoduje usunięcie katalogu kompilacji i ponowne skonfigurowanie z czystej pamięci podręcznej.
Konfigurowanie pamięci podręcznej wymusza uruchomienie kroku generowania, nawet jeśli Visual Studio uwzględnia aktualne środowisko.
Kompilowanie projektów CMake
Krok kompilacji narzędzia CMake tworzy już wygenerowane drzewo binarne projektu. Jest to równoważne wywołaniu cmake --build
z wiersza polecenia. Aby uzyskać więcej informacji na temat kroku kompilacji narzędzia CMake, zobacz dokumentację narzędzia CMake.
Aby utworzyć projekt CMake, możesz wybrać następujące opcje:
Na pasku narzędzi znajdź listę rozwijaną Element startowy . Wybierz preferowany element docelowy i naciśnij klawisz F5 lub wybierz przycisk Uruchom na pasku narzędzi. Projekt automatycznie kompiluje się jako rozwiązanie Visual Studio.
Kliknij prawym przyciskiem myszy obiekt docelowy narzędzia CMake z aktywnym widokiem obiektów docelowych narzędzia CMake w Eksplorator rozwiązań i wybierz pozycję Kompiluj z menu kontekstowego.
Z menu głównego wybierz pozycję Kompiluj > wszystko. Upewnij się, że element docelowy narzędzia CMake został już wybrany na liście rozwijanej Element startowy na pasku narzędzi.
Jak można się spodziewać, wyniki kompilacji są wyświetlane w oknie danych wyjściowych i na liście błędów.
Edytowanie ustawień kompilacji
Visual Studio używa pliku konfiguracji narzędzia CMake do stacji CMake kompilacji. Pliki konfiguracji narzędzia CMake hermetyzują opcje kompilacji, takie jak natywne przełączniki narzędzi kompilacji i zmienne środowiskowe. Jeśli CMakePresets.json
jest aktywnym plikiem konfiguracji, zobacz Konfigurowanie i kompilowanie przy użyciu ustawień wstępnych narzędzia CMake. Jeśli CMakeSettings.json
jest aktywnym plikiem konfiguracji, zobacz Dostosowywanie ustawień kompilacji narzędzia CMake. CMakePresets.json
Jest dostępny w Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake.
Debugowanie projektów CMake
Wszystkie obiekty docelowe narzędzia CMake wykonywalne są wyświetlane na liście rozwijanej Element startowy na pasku narzędzi. Aby rozpocząć debugowanie, wybierz jeden i naciśnij przycisk Debuguj > rozpocznij debugowanie na pasku narzędzi. W projekcie CMake opcja "Bieżący dokument" jest prawidłowa tylko dla plików cpp.
Polecenia Debuguj lub F5 najpierw skompilują projekt, jeśli zmiany zostały wprowadzone od poprzedniej kompilacji. Zmiany w pliku konfiguracji narzędzia CMake (CMakePresets.json
lub CMakeSettings.json
) lub powodują CMakeLists.txt
ponowne wygenerowanie pamięci podręcznej CMake.
Sesję debugowania narzędzia CMake można dostosować, ustawiając właściwości w launch.vs.json
pliku. Aby dostosować ustawienia debugowania dla określonego obiektu docelowego, wybierz element docelowy na liście rozwijanej Element startowy i naciśnij pozycję Debuguj > i Uruchom Ustawienia dla <aktywnego elementu docelowego>. Aby uzyskać więcej informacji na temat sesji debugowania narzędzia CMake, zobacz Konfigurowanie sesji debugowania narzędzia CMake.
Tylko mój kod dla projektów CMake
Podczas kompilowania dla Windows przy użyciu kompilatora MSVC projekty narzędzia CMake obsługują debugowanie Just My Code. Aby zmienić ustawienie Tylko mój kod, przejdź do pozycji NarzędziaOpcjeDebuggingOgólne.>>>
Edytowanie i kontynuowanie projektów CMake
Podczas kompilowania dla Windows za pomocą kompilatora MSVC projekty narzędzia CMake obsługują obsługę funkcji Edytuj i Kontynuuj. Dodaj następujący kod do pliku, CMakeLists.txt
aby włączyć opcję Edytuj i Kontynuuj.
if(MSVC)
target_compile_options(<target> PUBLIC "/ZI")
target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()
Dołączanie do projektu CMake uruchomionego w systemie Linux
Visual Studio umożliwia debugowanie procesu uruchomionego w zdalnym systemie Linux lub WSL i debugowanie go za pomocą debugera GDB. Aby rozpocząć pracę, wybierz pozycję DebugAttach> na Process..., ustaw typ połączenia na SSH i wybierz element docelowy połączenia z listy połączeń w Menedżer połączeń. Wybierz proces z listy dostępnych procesów i naciśnij przycisk Dołącz. Baza danych GDB musi być zainstalowana na maszynie z systemem Linux. Aby uzyskać więcej informacji na temat połączeń SSH, zobacz Menedżer połączeń
Aktywacja częściowa narzędzia CMake
W Visual Studio 2022 w wersji 17.1 lub nowszej funkcja narzędzia CMake nie zostanie włączona automatycznie, jeśli folder główny nie zawiera CMakeLists.txt
pliku. Zamiast tego zostanie wyświetlone okno dialogowe z monitem o włączenie funkcji narzędzia CMake dla projektu. W przypadku odrzucenia generowanie pamięci podręcznej CMake nie zostanie uruchomione, a konfiguracje narzędzia CMake (z CMakeSettings.json
programu lub CMakePresets.json
) nie będą wyświetlane na liście rozwijanej konfiguracji. Jeśli zaakceptujesz, nastąpi przekierowanie do pliku konfiguracji na poziomie obszaru roboczego (przechowywanego .vs
w katalogu), aby określić foldery, CMakeWorkspaceSettings.json
dla których chcesz włączyć narzędzie CMake. (Te foldery zawierają pliki główne CMakeLists.txt
).
Zaakceptowane właściwości to:
Właściwość | Opis |
---|---|
enableCMake |
Włącz integrację Visual Studio dla tego obszaru roboczego. |
sourceDirectory |
Ciąg lub tablica ciągów określający katalog lub katalogi za pomocą polecenia CMakeLists.txt . Makra (takie jak ${workspaceRoot} ) są dozwolone. Ścieżki względne są oparte na katalogu głównym obszaru roboczego. Katalogi poza bieżącym obszarem roboczym zostaną zignorowane. |
W dowolnym momencie możesz uzyskać dostęp za CMakeWorkspaceSettings.json
pośrednictwem > Project CMake Workspace Ustawienia polecenia menu, nawet jeśli funkcja narzędzia CMake jest obecnie wyłączona.
Otwieranie istniejącej pamięci podręcznej
Po otwarciu istniejącego pliku pamięci podręcznej CMake (CMakeCache.txt
) Visual Studio nie próbuje zarządzać pamięcią podręczną i drzewem kompilacji. Niestandardowe lub preferowane narzędzia mają pełną kontrolę nad sposobem konfigurowania projektu przez narzędzie CMake.
Możesz dodać istniejącą pamięć podręczną CMake do otwartego projektu. Odbywa się to w taki sam sposób, w jaki można dodać nową konfigurację. Aby uzyskać więcej informacji, zobacz nasz wpis w blogu dotyczący otwierania istniejącej pamięci podręcznej w Visual Studio.
Uwaga
Domyślne istniejące środowisko pamięci podręcznej opiera się na cmake-server
systemie , który został usunięty z narzędzia CMake w wersji 3.20. Aby nadal korzystać z istniejących funkcji pamięci podręcznej w Visual Studio 2019 w wersji 16.10 lub nowszej, wykonaj jedną z następujących czynności:
- Ręcznie zainstaluj narzędzie CMake w wersji 3.19 lub nowszej. Następnie ustaw
cmakeExecutable
właściwość w istniejącej konfiguracji pamięci podręcznej, aby używać tej wersji narzędzia CMake. - W istniejącej konfiguracji pamięci podręcznej ustaw
cacheGenerationCommand
właściwość , aby umożliwić Visual Studio zażądać niezbędnych plików interfejsu API opartych na pliku CMake. Aby uzyskać więcej informacji na temat tej właściwości, zobacz CMakeSettings.json reference (Dokumentacja CMakeSettings.json). - Użyj pliku zapytania, aby zażądać plików interfejsu API opartego na pliku CMake podczas generowania pamięci podręcznej przed otwarciem w Visual Studio. Aby uzyskać instrukcje dotyczące pliku zapytania, zobacz następną sekcję Rozwiązywanie problemów z zaawansowaną pamięcią podręczną CMake.
Zaawansowane rozwiązywanie problemów z pamięcią podręczną CMake
Visual Studio używa interfejsu API opartego na plikach CMake (w wersjach 3.14 i nowszych), aby wypełnić edytor informacjami specyficznymi dla struktury projektu. Aby uzyskać więcej informacji, zobacz wpis w blogu zespołu języka C++ dotyczący obszarów roboczych z wieloma głównymi obszarami roboczymi i interfejsem API opartym na plikach.
Przed wygenerowaniem pamięci podręcznej CMake niestandardowe lub preferowane narzędzia mogą wymagać utworzenia pliku zapytania o nazwie .cmake/api/v1/query/client-MicrosoftVS/query.json
w folderze wyjściowym kompilacji (folder zawierający CMakeCache.txt
). Plik zapytania powinien zawierać następującą zawartość:
{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2}]}
Gdy niestandardowe lub preferowane narzędzia generują pamięć podręczną, narzędzie CMake umieszcza pliki w tym .cmake/api/v1/response
Visual Studio używane do wypełniania edytora informacjami specyficznymi dla struktury projektu.
Edytowanie CMakeLists.txt
plików
Aby edytować CMakeLists.txt
plik, kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań i wybierz polecenie Otwórz. Jeśli wprowadzisz zmiany w pliku, pojawi się żółty pasek stanu i poinformuje Cię, że funkcja IntelliSense zostanie zaktualizowana. Daje to szansę na anulowanie operacji aktualizacji. Aby uzyskać informacje o CMakeLists.txt
programie , zobacz dokumentację narzędzia CMake.
Po zapisaniu pliku krok konfiguracji jest uruchamiany ponownie i wyświetla informacje w oknie Dane wyjściowe . Błędy i ostrzeżenia są wyświetlane w oknie Lista błędów lub Dane wyjściowe . Kliknij dwukrotnie błąd na liście błędów , aby przejść do wiersza przestępstwa w pliku CMakeLists.txt
.
Usługi językowe dla narzędzia CMake
Usługi językowe narzędzia CMake są dostępne w wersji 16.5 lub nowszej Visual Studio 2019. Obsługuje ona funkcje nawigacji kodu, takie jak Przejdź do definicji, Peek Definition i Find All References for CMake variables, functions i targets w plikach skryptów narzędzia CMake. Aby uzyskać więcej informacji, zobacz Nawigacja po kodzie dla skryptów CMake.
Manipulowanie projektem CMake
Manipulowanie projektem CMake jest dostępne w wersji 16.5 lub nowszej Visual Studio 2019. Project manipulowanie umożliwia dodawanie, usuwanie i zmienianie nazw plików źródłowych i elementów docelowych w projekcie CMake bez ręcznego edytowania skryptów CMake. Po dodaniu lub usunięciu plików z Eksplorator rozwiązań Visual Studio automatycznie edytuje projekt CMake. Może istnieć więcej niż jedno miejsce, w którym warto dodać lub usunąć odwołanie do skryptu narzędzia CMake. Jeśli tak, Visual Studio pyta, gdzie chcesz wprowadzić zmianę i wyświetla podgląd proponowanych zmian. Aby uzyskać instrukcje krok po kroku, zobacz Dodawanie, usuwanie i zmienianie nazw plików i elementów docelowych w projektach CMake.
Funkcja IntelliSense dla projektów CMake
Domyślnie Visual Studio używa trybu IntelliSense zgodnego z architekturą kompilatora i docelową określoną przez aktywną konfigurację narzędzia CMake.
Jeśli CMakePresets.json
jest aktywnym plikiem konfiguracji narzędzia CMake, możesz określić opcje funkcji IntelliSense przy użyciu funkcji intelliSenseMode
i intelliSenseOptions
na mapie dostawcy Visual Studio Ustawienia. Aby uzyskać więcej informacji, zobacz dokumentację mapy dostawcy Visual Studio Ustawienia.
Jeśli CMakeSettings.json
jest aktywnym plikiem konfiguracji narzędzia CMake, możesz określić opcje funkcji IntelliSense przy użyciu polecenia intelliSenseMode
w pliku CMakeSettings.json
. Aby uzyskać więcej informacji, zobacz dokumentacjęCMakeSettings.json
.
Konfigurowanie funkcji IntelliSense przy użyciu plików łańcucha narzędzi CMake
W Visual Studio 2019 w wersji 16.9 lub nowszej Visual Studio automatycznie konfiguruje funkcję IntelliSense w projektach CMake na podstawie zmiennych CMake podczas korzystania z pliku łańcucha narzędzi CMake. Aby uzyskać więcej informacji, zobacz Configure IntelliSense with CMake Toolchain Files (Konfigurowanie funkcji IntelliSense za pomocą plików łańcucha narzędzi CMake).
Integracja narzędzia Vcpkg
Projekty CMake otwarte w Visual Studio integrują się z vcpkg, wieloplatformowym menedżerem zależności C/C++. Przed użyciem vcpkg z Visual Studio należy uruchomić polecenie vcpkg integrate install
. Aby uzyskać instrukcje i więcej informacji na temat vcpkg, zobacz dokumentację vcpkg.
Jeśli CMakeSettings.json
jest aktywnym plikiem konfiguracji, Visual Studio automatycznie przekazuje vcpkg plik łańcucha narzędzi (vcpkg.cmake
) do narzędzia CMake. To zachowanie jest automatycznie wyłączone po określeniu innego łańcucha narzędzi w konfiguracji narzędzia CMake Ustawienia.
Jeśli CMakePresets.json
jest aktywnym plikiem konfiguracji, musisz ustawić ścieżkę na vcpkg.cmake
w pliku CMakePresets.json
. Zalecamy używanie zmiennej środowiskowej VCPKG_ROOT
zamiast ścieżki bezwzględnej, aby zachować możliwość udostępniania plików. Aby uzyskać więcej informacji, zobacz Włączanie integracji vcpkg z ustawieniami wstępnymi narzędzia CMake. CMakePresets.json
jest dostępny w wersji Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake.
Uruchamianie narzędzia CMake z wiersza polecenia
Jeśli CMakePresets.json
jest aktywnym plikiem konfiguracji narzędzia CMake, możesz łatwo odtworzyć lokalne kompilacje poza Visual Studio. Aby uzyskać więcej informacji, zobacz Run CMake from the command line or a CI pipeline (Uruchamianie narzędzia CMake z wiersza polecenia lub potoku ciągłej integracji). CMakePresets.json
program jest obsługiwany w wersji 16.10 lub nowszej Visual Studio 2019 i jest zalecanym plikiem konfiguracji narzędzia CMake.
Jeśli CMakeSettings.json
jest aktywnym plikiem konfiguracji narzędzia CMake, należy ręcznie przekazać argumenty zakodowane w CMakeSettings.json
pliku do narzędzia CMake. Jeśli zainstalowano narzędzie CMake z Instalator programu Visual Studio, możesz uruchomić go z poziomu wiersza polecenia, wykonując następujące kroki:
Uruchom odpowiedni
vsdevcmd.bat
plik (x86/x64). Aby uzyskać więcej informacji, zobacz Kompilowanie w wierszu polecenia .Przejdź do folderu wyjściowego.
Uruchom narzędzie CMake, aby skompilować lub skonfigurować aplikację.
Visual Studio 2017 ma zaawansowaną obsługę narzędzia CMake, w tym międzyplatformowe projekty CMake. Składnik Visual C++ Tools for CMake używa funkcji Otwórz folder , aby umożliwić środowisku IDE korzystanie z plików projektu CMake (takich jak CMakeLists.txt
) bezpośrednio na potrzeby funkcji IntelliSense i przeglądania. Obsługiwane są zarówno generatory Ninja, jak i Visual Studio. Jeśli używasz generatora Visual Studio, generuje tymczasowy plik projektu i przekazuje go do MSBuild. Jednak projekt nigdy nie jest ładowany do celów intelliSense lub przeglądania. Możesz również zaimportować istniejącą pamięć podręczną CMake.
Instalacja
Narzędzia Visual C++ Tools for CMake są instalowane w ramach tworzenia aplikacji klasycznych przy użyciu języków C++ i Linux Development z obciążeniami języka C++ .
Aby uzyskać więcej informacji, zobacz Instalowanie obciążenia C++ Linux w Visual Studio.
Integracja środowiska IDE
Po wybraniu pozycji Plik > Otwórz > folder , aby otworzyć folder zawierający CMakeLists.txt
plik, dzieje się następująca sytuacja:
Visual Studio dodaje element menu CMake do menu głównego z poleceniami do wyświetlania i edytowania skryptów CMake.
Eksplorator rozwiązań wyświetla strukturę folderów i pliki.
Visual Studio uruchamia narzędzie CMake i opcjonalnie generuje pamięć podręczną CMake dla konfiguracji domyślnej, czyli x86 Debug. Wiersz polecenia narzędzia CMake jest wyświetlany w oknie danych wyjściowych wraz z innymi danymi wyjściowymi narzędzia CMake.
W tle Visual Studio zaczyna indeksować pliki źródłowe w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji itd. Podczas pracy Visual Studio monitoruje zmiany w edytorze, a także na dysku w celu zachowania synchronizacji indeksu ze źródłami.
Możesz otwierać foldery zawierające dowolną liczbę projektów CMake. Visual Studio wykrywa i konfiguruje wszystkie pliki "root" CMakeLists.txt
w obszarze roboczym. Operacje CMake (konfigurowanie, kompilowanie, debugowanie), Funkcja IntelliSense i przeglądanie języka C++ są dostępne dla wszystkich projektów CMake w obszarze roboczym.
Projekty można również wyświetlać logicznie według elementów docelowych. Wybierz widok Cele z listy rozwijanej na pasku narzędzi Eksplorator rozwiązań:
Visual Studio używa pliku o nazwie CMakeSettings.json
do przechowywania zmiennych środowiskowych lub opcji wiersza polecenia dla narzędzia CMake. CMakeSettings.json
Umożliwia również definiowanie i przechowywanie wielu konfiguracji kompilacji narzędzia CMake. Możesz wygodnie przełączać się między nimi w środowisku IDE.
W przeciwnym razie użyj CMakeLists.txt
polecenia tak samo jak w każdym projekcie CMake, aby określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i konsolidatora oraz określić inne informacje związane z systemem kompilacji.
Jeśli musisz przekazać argumenty do pliku wykonywalnego w czasie debugowania, możesz użyć innego pliku o nazwie launch.vs.json
. W niektórych scenariuszach Visual Studio automatycznie generuje te pliki. Można je edytować ręcznie, a nawet samodzielnie utworzyć plik.
Uwaga
W przypadku innych rodzajów projektów Open Folder są używane dwa dodatkowe pliki JSON: CppProperties.json
i tasks.vs.json
. Żadna z tych elementów nie jest odpowiednia dla projektów CMake.
Importowanie istniejącej pamięci podręcznej
Podczas importowania istniejącego CMakeCache.txt
pliku Visual Studio automatycznie wyodrębnia dostosowane zmienne i tworzy wstępnie wypełniony CMakeSettings.json
plik na ich podstawie. Oryginalna pamięć podręczna nie jest modyfikowana w żaden sposób. Można go nadal używać z poziomu wiersza polecenia lub z jakimkolwiek narzędziem lub środowiskiem IDE używanym do jego wygenerowania. Nowy CMakeSettings.json
plik jest umieszczany obok katalogu głównego CMakeLists.txt
projektu . Visual Studio generuje nową pamięć podręczną na podstawie pliku ustawień. Automatyczne generowanie pamięci podręcznej można przesłonić w oknie dialogowym Narzędzia > Opcje > narzędzia Ogólne narzędzia.>
Nie wszystkie elementy w pamięci podręcznej są importowane. Właściwości, takie jak generator i lokalizacja kompilatorów, są zastępowane wartościami domyślnymi, które są znane jako dobrze współdziałające ze środowiskiem IDE.
Aby zaimportować istniejącą pamięć podręczną
W menu głównym wybierz kolejno pozycje Plik > Otwórz > narzędzie CMake:
To polecenie powoduje wyświetlenie kreatora Importowanie narzędzia CMake z pamięci podręcznej .
Przejdź do
CMakeCache.txt
pliku, który chcesz zaimportować, a następnie wybierz przycisk OK. Zostanie wyświetlony kreator Importowanie narzędzia CMake Project z pamięci podręcznej:Po zakończeniu pracy kreatora będzie można zobaczyć nowy
CMakeCache.txt
plik w Eksplorator rozwiązań obok pliku głównegoCMakeLists.txt
w projekcie.
Kompilowanie projektów CMake
Aby utworzyć projekt CMake, możesz wybrać następujące opcje:
Na pasku narzędzi Ogólne znajdź listę rozwijaną Konfiguracje . Prawdopodobnie domyślnie jest wyświetlany komunikat "Linux-Debug" lub "x64-Debug". Wybierz preferowaną konfigurację i naciśnij klawisz F5 lub wybierz przycisk Uruchom (zielony trójkąt) na pasku narzędzi. Projekt automatycznie kompiluje się jako rozwiązanie Visual Studio.
Kliknij prawym przyciskiem myszy
CMakeLists.txt
w Eksplorator rozwiązań i wybierz polecenie Kompiluj z menu kontekstowego. Jeśli masz wiele obiektów docelowych w strukturze folderów, możesz utworzyć wszystkie lub tylko jeden konkretny obiekt docelowy.W menu głównym wybierz pozycję Kompiluj rozwiązanie kompilacji > (F7 lub Ctrl+Shift+B). Upewnij się, że element docelowy narzędzia CMake został już wybrany na liście rozwijanej Element startowy na pasku narzędzi Ogólne .
Konfiguracje kompilacji, zmienne środowiskowe, argumenty wiersza polecenia i inne ustawienia można dostosować w CMakeSettings.json
pliku. Umożliwia wprowadzanie zmian bez modyfikowania CMakeLists.txt
pliku. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień narzędzia CMake.
Jak można się spodziewać, wyniki kompilacji są wyświetlane w oknie danych wyjściowych i na liście błędów.
W folderze z wieloma miejscami docelowymi kompilacji możesz określić obiekt docelowy narzędzia CMake do skompilowania: wybierz element Kompilacja w menu narzędzia CMake lub CMakeLists.txt
menu kontekstowe, aby określić element docelowy. Jeśli wprowadzisz klawisze Ctrl+Shift+B w projekcie CMake, skompiluje bieżący aktywny dokument.
Debugowanie projektów CMake
Aby debugować projekt CMake, wybierz preferowaną konfigurację i naciśnij klawisz F5. Możesz też nacisnąć przycisk Uruchom na pasku narzędzi. Jeśli przycisk Uruchom ma wartość "Wybierz element startowy", wybierz strzałkę listy rozwijanej i wybierz element docelowy, który chcesz uruchomić. (W projekcie CMake opcja "Bieżący dokument" jest prawidłowa tylko dla plików cpp).
Polecenia Uruchom lub F5 najpierw skompilują projekt, jeśli zmiany zostały wprowadzone od poprzedniej kompilacji.
Sesję debugowania narzędzia CMake można dostosować, ustawiając właściwości w launch.vs.json
pliku. Aby uzyskać więcej informacji, zobacz Konfigurowanie sesji debugowania narzędzia CMake.
Edytowanie CMakeLists.txt
plików
Aby edytować CMakeLists.txt
plik, kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań i wybierz polecenie Otwórz. Jeśli wprowadzisz zmiany w pliku, pojawi się żółty pasek stanu i poinformuje Cię, że funkcja IntelliSense zostanie zaktualizowana. Daje to szansę na anulowanie operacji aktualizacji. Aby uzyskać informacje o CMakeLists.txt
programie , zobacz dokumentację narzędzia CMake.
Po zapisaniu pliku krok konfiguracji jest uruchamiany ponownie i wyświetla informacje w oknie Dane wyjściowe . Błędy i ostrzeżenia są wyświetlane w oknie Lista błędów lub Dane wyjściowe . Kliknij dwukrotnie błąd na liście błędów , aby przejść do wiersza przestępstwa w pliku CMakeLists.txt
.
Krok konfigurowania narzędzia CMake
Po wprowadzeniu znaczących zmian w plikach CMakeSettings.json
lub CMakeLists.txt
Visual Studio automatycznie uruchomi krok konfiguracji narzędzia CMake. Jeśli krok konfigurowania zakończy się bez błędów, zebrane informacje są dostępne w usługach intelliSense i językowych języka C++. Jest on również używany w operacjach kompilacji i debugowania.
Wiele projektów CMake może używać tej samej nazwy konfiguracji narzędzia CMake (na przykład x86-Debug). Wszystkie z nich są konfigurowane i kompilowane (we własnym folderze głównym kompilacji) po wybraniu tej konfiguracji. Obiekty docelowe można debugować ze wszystkich projektów CMake, które uczestniczą w tej konfiguracji narzędzia CMake.
Sesje kompilacji i debugowania można ograniczyć do podzestawu projektów w obszarze roboczym. Utwórz nową konfigurację o unikatowej nazwie w CMakeSettings.json
pliku. Następnie zastosuj konfigurację tylko do tych projektów. Po wybraniu tej konfiguracji funkcja IntelliSense i polecenia kompilacji i debugowania mają zastosowanie tylko do tych określonych projektów.
Rozwiązywanie problemów z błędami pamięci podręcznej CMake
Jeśli potrzebujesz więcej informacji na temat stanu pamięci podręcznej CMake w celu zdiagnozowania problemu, otwórz menu główne narzędzia CMake lub CMakeLists.txt
menu kontekstowe w Eksplorator rozwiązań, aby uruchomić jedno z następujących poleceń:
Widok Pamięć podręczna
CMakeCache.txt
otwiera plik z folderu głównego kompilacji w edytorze. (Wszelkie zmiany, które należy wprowadzić w tymCMakeCache.txt
miejscu, zostaną wyczyszczone, jeśli wyczyścisz pamięć podręczną. Aby wprowadzić zmiany utrwalane po wyczyszczeniu pamięci podręcznej, zobacz Dostosowywanie ustawień narzędzia CMake).Otwórz folder pamięci podręcznej otwiera okno Eksploratora w folderze głównym kompilacji.
Clean Cache usuwa folder główny kompilacji, aby następny krok konfiguracji narzędzia CMake rozpoczynał się od czystej pamięci podręcznej.
Generowanie pamięci podręcznej wymusza uruchomienie kroku generowania, nawet jeśli Visual Studio uwzględnia aktualne środowisko.
Automatyczne generowanie pamięci podręcznej można wyłączyć w oknie dialogowym Narzędzia > Opcje > ogólne narzędzia.>
Kompilacja pojedynczego pliku
Aby skompilować pojedynczy plik w projekcie CMake, kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań. Wybierz pozycję Skompiluj z menu podręcznego. Możesz również skompilować aktualnie otwarty plik w edytorze przy użyciu głównego menu narzędzia CMake :
Uruchamianie narzędzia CMake z wiersza polecenia
Jeśli zainstalowano narzędzie CMake z Instalator programu Visual Studio, możesz uruchomić go z poziomu wiersza polecenia, wykonując następujące kroki:
Uruchom odpowiedni
vsdevcmd.bat
plik (x86/x64). Aby uzyskać więcej informacji, zobacz Kompilowanie w wierszu polecenia.Przejdź do folderu wyjściowego.
Uruchom narzędzie CMake, aby skompilować lub skonfigurować aplikację.
W Visual Studio 2015 r. użytkownicy Visual Studio mogą użyć generatora narzędzia CMake do generowania MSBuild plików projektu, które następnie środowisko IDE zużywa na potrzeby funkcji IntelliSense, przeglądania i kompilacji.
Zobacz też
Samouczek: Tworzenie międzyplatformowych projektów w języku C++ w programie Visual Studio
Konfigurowanie projektu CMake systemu Linux
Nawiązywanie połączenia ze zdalnym komputerem z systemem Linux
Dostosowywanie ustawień kompilacji narzędzia CMake
CMakeSettings.json
odwołanie do schematu
Konfigurowanie sesji debugowania narzędzia CMake
Wdrażanie, uruchamianie i debugowanie projektu systemu Linux
Odwołanie do wstępnie zdefiniowanej konfiguracji narzędzia CMake