Projekty CMake w programie Visual Studio
CMake to międzyplatformowe narzędzie typu open source służące 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 programem Visual Studio w ciągu ostatnich kilku wersji. Aby zapoznać się z dokumentacją preferowanej wersji programu 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 w programie Visual Studio umożliwia edytowanie, kompilowanie i debugowanie projektów CMake w systemie Windows, Podsystem Windows dla systemu Linux (WSL) i systemów zdalnych z tego samego wystąpienia programu Visual Studio. Pliki projektu CMake (takie jak CMakeLists.txt
) są używane bezpośrednio przez program Visual Studio na potrzeby funkcji IntelliSense i przeglądania. cmake.exe
jest wywoływany bezpośrednio przez program Visual Studio dla konfiguracji i kompilacji narzędzia CMake.
Instalacja
Narzędzia CMake języka C++ dla systemu Windows są instalowane w ramach tworzenia aplikacji klasycznych przy użyciu języków C++ i Linux Development z obciążeniami języka C++ . Zarówno narzędzia CMake języka C++ dla programowania w systemach Windows, jak i Linux z językiem C++ są wymagane do programowania międzyplatformowego narzędzia CMake.
W instalatorze jest wybrana lista rozwijana Programowanie aplikacji klasycznych z językiem C plus plus i C oraz narzędzia C Make dla systemu Windows.
Aby uzyskać więcej informacji, zobacz Instalowanie obciążenia C++ Linux w programie Visual Studio.
Integracja środowiska IDE
Po otwarciu folderu zawierającego CMakeLists.txt
plik następuje wykonanie następujących czynności.
Okno dialogowe oferuje następujące opcje: klonowanie repozytorium, otwieranie projektu lub rozwiązania, otwieranie folderu lokalnego lub tworzenie nowego projektu. Otwórz folder lokalny jest wywoływany na zrzucie ekranu.
Program 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.
Program 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 program Visual Studio rozpoczyna indeksowanie plików źródłowych w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji itd. Podczas pracy program Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby zachować synchronizację indeksu ze źródłami.
Uwaga
Począwszy od programu Visual Studio 2022 w wersji 17.1 (wersja zapoznawcza 2), jeśli twój najwyższy poziom CMakeLists.txt
istnieje w podfolderze, a nie w katalogu głównym obszaru roboczego, zostanie wyświetlony monit, czy chcesz włączyć integrację narzędzia CMake, czy nie. Aby uzyskać więcej informacji, zobacz CMake partial activation (Aktywacja częściowa narzędzia CMake).
Gdy generowanie pamięci podręcznej CMake zakończyło się pomyślnie, możesz również wyświetlać projekty uporządkowane logicznie według obiektó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 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 dotyczące kompilacji związane z systemem. Aby uzyskać więcej informacji na temat usług językowych CMake udostępnianych przez program Visual Studio, zobacz Edytowanie plików CMakeLists.txt.
Program Visual Studio używa pliku konfiguracji 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 programie Visual Studio, zobacz Debugowanie projektów CMake.
Większość funkcji języka Visual Studio i C++ jest obsługiwana przez projekty CMake w programie Visual Studio. Oto kilka przykładów:
- Edytowanie i kontynuowanie projektów CMake
- Integracja incredibuild dla projektów CMake
- Obsługa narzędzia AddressSanitizer dla projektów CMake
- Obsługa języka Clang/LLVM
Uwaga
W przypadku innych rodzajów projektów Open Folder jest używany dodatkowy plik CppProperties.json
JSON. Ten plik nie jest odpowiedni 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 konfigurowania narzędzia CMake, zobacz dokumentację narzędzia CMake.
Program Visual Studio używa pliku konfiguracji 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 poziomu programu Visual Studio, z programu VS Code w potoku ciągłej integracji oraz z wiersza polecenia w systemach 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 ze starszej wersji programu Visual Studio. Aby uzyskać więcej informacji na temat CMakeSettings.json
programu , zobacz Dostosowywanie ustawień kompilacji narzędzia CMake.
Po wprowadzeniu znaczących zmian w pliku konfiguracji narzędzia CMake lub CMakeLists.txt
pliku program Visual Studio automatycznie uruchomi krok konfiguracji narzędzia CMake. Krok konfigurowania można wywołać ręcznie: wybierz pozycję Project Configure Cache (Konfigurowanie pamięci podręcznej projektu>) na pasku narzędzi. Możesz również zmienić preferencje konfiguracji w obszarze Narzędzia>Opcje>CMake>Ogólne.
Ustawienia konfiguracji narzędzia CMake są wywoływane. Pokaż opcję Ustaw powiadomienia w pamięci podręcznej w języku C jest zaznaczone. W obszarze "Gdy pamięć podręczna jest nieaktualna:", jest wybrana opcja "Nigdy nie uruchamiaj kroku konfigurowania automatycznie".
Jeśli krok konfigurowania zakończy się bez błędów, informacje dostępne są na dyskach C++ IntelliSense i usługach językowych. Jest on również używany w operacjach kompilacji i debugowania.
Możesz również otworzyć istniejącą pamięć podręczną CMake w programie 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ędzia>Opcje>CMake>Włącz pełne dane wyjściowe diagnostyczne 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 projektu 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. Wszelkie zmiany, które należy wprowadzić w tym miejscuCMakeCache.txt
, 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 lub Konfigurowanie i kompilowanie przy użyciu ustawień wstępnych narzędzia CMake.Usuń pamięć podręczną i ponownie skonfiguruje katalog kompilacji i ponownie skonfiguruje je z czystej pamięci podręcznej.
Konfigurowanie pamięci podręcznej wymusza uruchomienie kroku generowania, nawet jeśli program 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 F5 lub wybierz przycisk Uruchom na pasku narzędzi. Projekt automatycznie kompiluje się tak samo jak rozwiązanie programu 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 polecenie 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.
Ostrzeżenia kompilacji narzędzia CMake dotyczące konwersji, które mogą spowodować utratę danych, na przykład konwersję z liczby zmiennoprzecinkowej na liczbę całkowitą, są widoczne. :::image-end:::
Edytowanie ustawień kompilacji
Program Visual Studio używa pliku konfiguracji CMake do obsługi kompilacji narzędzia CMake. 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 programie Visual Studio 2019 w wersji 16.10 lub nowszej i jest zalecanym plikiem konfiguracji narzędzia CMake.
Debugowanie projektów CMake
Wszystkie elementy 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.
Lista rozwijana zawiera następujące opcje: Pokaż/Ukryj elementy docelowe debugowania, bieżący dokument, przykłady (wyróżnione), box2d_tests i samples-noGUI.
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 ) lub CMakeSettings.json
CMakeLists.txt
powodują 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 miejsca docelowego, wybierz element docelowy na liście rozwijanej Element startowy i naciśnij pozycję Debuguj > ustawienia debugowania i uruchamiania dla <elementu docelowego aktywnego>. 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 systemu Windows przy użyciu kompilatora MSVC projekty CMake obsługują debugowanie Just My Code. Aby zmienić ustawienie Tylko mój kod, przejdź do pozycji Narzędzia>Opcje>Debugowanie>ogólne. Aby uzyskać więcej informacji na temat debugowania Tylko mój kod, zobacz Debugowanie tylko kodu użytkownika za pomocą tylko mojego kodu.
Edytowanie i kontynuowanie projektów CMake
Podczas kompilowania dla systemu Windows za pomocą kompilatora MSVC projekty CMake obsługują edytowanie i kontynuowanie. Dodaj następujący kod do CMakeLists.txt
pliku, aby włączyć opcję Edytuj i kontynuuj. Aby uzyskać więcej informacji na temat edytowania i kontynuowania, zobacz Konfigurowanie edycji i kontynuowania (C#, VB, C++).
if(MSVC)
target_compile_options(<target> PUBLIC "/ZI")
target_link_options(<target> PUBLIC "/INCREMENTAL")
endif()
Dołączanie do projektu CMake uruchomionego w systemie Linux
Program Visual Studio umożliwia debugowanie procesu uruchomionego w zdalnym systemie Linux lub WSL i debugowanie go za pomocą debugera GDB. Aby rozpocząć, wybierz pozycję Debuguj>dołączanie do procesu..., 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ń
Następujące opcje są dostępne w oknie dialogowym: Typ połączenia (ustawiony na SSH), obiekt docelowy połączenia (ustawiony na demo@ 172. 20. 60. 6) oraz listę dostępnych procesów, do których można dołączyć.
Aktywacja częściowa narzędzia CMake
W programie Visual Studio 2022 w wersji 17.1 lub nowszej funkcja 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 to, czy chcesz włączyć funkcję CMake dla projektu. Jeśli odrzucisz, generowanie pamięci podręcznej CMake nie zostanie uruchomione, a konfiguracje narzędzia CMake (z lub CMakeSettings.json
CMakePresets.json
) nie będą wyświetlane na liście rozwijanej konfiguracji. Jeśli zaakceptujesz, nastąpi przekierowanie do pliku CMakeWorkspaceSettings.json
konfiguracji na poziomie obszaru roboczego (przechowywanego .vs
w katalogu), aby określić foldery, 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ści | opis |
---|---|
enableCMake |
Włącz integrację programu 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 spoza bieżącego obszaru roboczego zostaną zignorowane. |
W dowolnym momencie możesz uzyskać dostęp za CMakeWorkspaceSettings.json
pomocą polecenia menu Ustawienia obszaru roboczego narzędzia Project>CMake, nawet jeśli funkcja CMake jest obecnie wyłączona.
Otwieranie istniejącej pamięci podręcznej
Po otwarciu istniejącego pliku pamięci podręcznej CMake (CMakeCache.txt
) program Visual Studio nie próbuje zarządzać pamięcią podręczną i drzewem kompilacji. Twoje niestandardowe lub preferowane narzędzia mają pełną kontrolę nad sposobem konfigurowania projektu przez narzędzie CMake.
Do otwartego projektu można dodać istniejącą pamięć podręczną CMake. Odbywa się to tak samo, jak w przypadku dodawania nowej konfiguracji. Aby uzyskać więcej informacji, zobacz nasz wpis w blogu dotyczący otwierania istniejącej pamięci podręcznej w programie Visual Studio.
Uwaga
Domyślne istniejące środowisko pamięci podręcznej opiera się na metodzie cmake-server
, która została usunięta z narzędzia CMake w wersji 3.20. Aby kontynuować korzystanie z istniejącej funkcji pamięci podręcznej w programie 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 starszej. 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ć programowi Visual Studio żądanie 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 dokumentacji. - Użyj pliku zapytania, aby zażądać plików interfejsu API opartego na pliku CMake podczas generowania pamięci podręcznej przed otwarciem w programie Visual Studio. Aby uzyskać instrukcje dotyczące pliku zapytań, 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
Program 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 ramach .cmake/api/v1/response
tego programu 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, zostanie wyświetlony żółty pasek stanu z informacją, że funkcja IntelliSense zostanie zaktualizowana. Daje to szansę na anulowanie operacji aktualizacji. Aby uzyskać informacje na temat CMakeLists.txt
programu , zobacz dokumentację narzędzia CMake.
Zawiera on projekt wierszy (hello-cmake), add_subdirectory (testy), add_executable (hello hello.cpp) i zainstaluj (TARGETS hello DESTINATION hello/bin). Komunikat w górnej części okna mówi, że c plus plus informacje IntelliSense zostaną odświeżone po zakończeniu generowania pamięci podręcznej przez funkcję C Make.
Gdy tylko zapiszesz plik, krok konfiguracji zostanie uruchomiony ponownie i wyświetli 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 błędu w pliku CMakeLists.txt
.
W wierszu 3 CMakeLists.txt wyróżniono komunikat o błędzie C Make. Szczegóły dotyczą tego, że funkcja C Make nie może odnaleźć pliku konfiguracji pakietu dostarczonego przez usługę sqlite3. C Make szukał go w CMAKE_MODULE_PATH, ale nie mógł go znaleźć. Sugestią jest dodanie prefiksu instalacji "sqlite3" do CMAKE_PREFIX_PATH lub ustawienie sqlite3_DIR do katalogu zawierającego plik sqlite3Config.cmake i/lub sqlitet3-config.cmake.
Usługi językowe dla narzędzia CMake
Usługi językowe dla narzędzia CMake są dostępne w programie Visual Studio 2019 w wersji 16.5 lub nowszej. Obsługuje ona funkcje nawigacji kodu, takie jak Przejdź do definicji, Zobacz definicję i Znajdź wszystkie odwołania dla zmiennych, funkcji i elementów docelowych narzędzia CMake w plikach skryptów narzędzia CMake. Aby uzyskać więcej informacji, zobacz Nawigacja po kodzie dla skryptów CMake.
Wyniki, w których można znaleźć SUPERTUX_SOURCES_CXX, są wyświetlane. Na przykład na liście (SSUPERTUX_SOURCES_CXX SORT), plik (SUPERTUX_SOURCES_CXX GLOB) itd.
Manipulowanie projektem CMake
Manipulowanie projektem CMake jest dostępne w programie Visual Studio 2019 w wersji 16.5 lub nowszej. Manipulowanie projektem umożliwia dodawanie, usuwanie i zmienianie nazw plików źródłowych i obiektów docelowych w projekcie narzędzia CMake bez ręcznego edytowania skryptów narzędzia CMake. Po dodaniu lub usunięciu plików z Eksplorator rozwiązań program 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, program Visual Studio prosi o wprowadzenie zmiany i wyświetlenie podglądu proponowanych zmian. Aby uzyskać instrukcje krok po kroku, zobacz Dodawanie, usuwanie i zmienianie nazw plików i elementów docelowych w projektach CMake.
Widok drzewa pokazuje CMakeLists.txt, w którym są dwa elementy: add_executable i zestaw. Ustawienie jest zaznaczone. W oknie podglądu zostaną wyświetlone informacje o tym, gdzie zostaną wprowadzone zmiany. Zestaw wierszy (PROJECT_SRC "CmakeProject4.cpp" "CMakeProject4.h" pokazuje wyróżnione "Demo.cpp" przed nawiasem zamykającym. Przycisk Zastosuj akceptuje zmianę lub możesz nacisnąć przycisk Anuluj.
Funkcja IntelliSense dla projektów CMake
Domyślnie program 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 ustawień programu Visual Studio. Aby uzyskać więcej informacji, zobacz informacje o mapie dostawcy ustawień programu Visual Studio.
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 programie Visual Studio 2019 w wersji 16.9 lub nowszej program 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 programie Visual Studio integrują się z narzędziem vcpkg, międzyplatformowym menedżerem zależności C/C++. Przed rozpoczęciem korzystania z programu vcpkg w programie Visual Studio należy uruchomić polecenie vcpkg integrate install
. Aby uzyskać instrukcje i więcej informacji na temat narzędzia vcpkg, zobacz:
- Instalowanie i używanie pakietów za pomocą narzędzia CMake w programie Visual Studio
- vcpkg w projektach CMake
Jeśli CMakeSettings.json
jest aktywnym plikiem konfiguracji, program Visual Studio automatycznie przekazuje plik łańcucha narzędzi vcpkg (vcpkg.cmake
) do narzędzia CMake. To zachowanie jest wyłączone automatycznie po określeniu dowolnego innego łańcucha narzędzi w konfiguracji ustawień narzędzia CMake.
Jeśli CMakePresets.json
jest aktywnym plikiem konfiguracji, musisz ustawić ścieżkę na vcpkg.cmake
w CMakePresets.json
pliku . 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 Enable vcpkg integration with CMake Presets (Włączanie integracji narzędzia vcpkg z ustawieniami wstępnymi narzędzia CMake). CMakePresets.json
jest dostępny w programie 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 programem Visual Studio. Aby uzyskać więcej informacji, zobacz Uruchamianie narzędzia CMake z wiersza polecenia lub potoku ciągłej integracji. CMakePresets.json
Program jest obsługiwany w programie Visual Studio 2019 w wersji 16.10 lub nowszej 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ę.
Program Visual Studio 2017 ma bogatą 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 projektów 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 programu Visual Studio, generuje tymczasowy plik projektu i przekazuje go do programu 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 programowania aplikacji klasycznych z pakietami roboczymi C++ i Linux Development with C++ .
Aby uzyskać więcej informacji, zobacz Instalowanie obciążenia C++ Linux w programie Visual Studio.
Integracja środowiska IDE
Po wybraniu pozycji Plik > Otwórz > folder , aby otworzyć folder zawierający CMakeLists.txt
plik, następuje:
Program Visual Studio dodaje element menu CMake do menu głównego z poleceniami do wyświetlania i edytowania skryptów narzędzia CMake.
Eksplorator rozwiązań wyświetla strukturę folderów i pliki.
Program 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 program Visual Studio rozpoczyna indeksowanie plików źródłowych w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji itd. Podczas pracy program Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby zachować synchronizację indeksu ze źródłami.
Można otwierać foldery zawierające dowolną liczbę projektów CMake. Program Visual Studio wykrywa i konfiguruje wszystkie pliki "root" CMakeLists.txt
w obszarze roboczym. Operacje narzędzia CMake (konfigurowanie, kompilowanie, debugowanie), Funkcja IntelliSense i przeglądanie języka C++ są dostępne dla wszystkich projektów CMake w obszarze roboczym.
Pliki i foldery projektu CMake są widoczne. Istnieje podkatalog testów, CMakeLists.txt i hello.cpp. Istnieje folder hello-cmake-vcpkg zawierający CMakeLists.txt, CMakeSettings.json i hello.cpp.
Możesz również wyświetlać projekty uporządkowane logicznie według obiektów docelowych. Wybierz widok Cele z listy rozwijanej na pasku narzędzi Eksplorator rozwiązań:
Program 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 dowolnym projekcie CMake, aby określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i konsolidatora oraz określić inne informacje dotyczące systemu 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 program 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 używane są dwa dodatkowe pliki JSON: CppProperties.json
i tasks.vs.json
. Żadna z nich nie jest odpowiednia dla projektów CMake.
Importowanie istniejącej pamięci podręcznej
Podczas importowania istniejącego CMakeCache.txt
pliku program 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 wiersza polecenia lub za pomocą dowolnego narzędzia lub środowiska IDE użytego do jego wygenerowania. Nowy CMakeSettings.json
plik jest umieszczany obok katalogu głównego CMakeLists.txt
projektu . Program Visual Studio generuje nową pamięć podręczną na podstawie pliku ustawień. Automatyczne generowanie pamięci podręcznej można zastąpić w oknie dialogowym Narzędzia > Opcje > ogólne narzędzia CMake>.
Nie wszystko w pamięci podręcznej jest importowane. Właściwości, takie jak generator i lokalizacja kompilatorów, są zastępowane wartościami domyślnymi, które dobrze współdziałają 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 projektu CMake z pamięci podręcznej :Po zakończeniu pracy kreatora nowy plik będzie widoczny
CMakeCache.txt
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 F5 lub wybierz przycisk Uruchom (zielony trójkąt) na pasku narzędzi. Projekt automatycznie kompiluje się tak samo jak rozwiązanie programu 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 element docelowy.Z menu głównego 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 .
Menu zawiera opcje, takie jak Dodaj, Otwórz, Konfiguruj zadania, Kompilacja, Wyczyść wszystko itd.
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.
Ostrzeżenia kompilacji narzędzia CMake dotyczące konwersji, które mogą spowodować utratę danych, na przykład konwersję z liczby zmiennoprzecinkowej na liczbę całkowitą, są widoczne.
W folderze z wieloma miejscami docelowymi kompilacji można określić obiekt docelowy narzędzia CMake do skompilowania: wybierz element kompilacji w menu narzędzia CMake lub CMakeLists.txt
menu kontekstowe, aby określić element docelowy. Jeśli wprowadzisz Ctrl+Shift+B w projekcie CMake, skompiluje on bieżący aktywny dokument.
Debugowanie projektów CMake
Aby debugować projekt CMake, wybierz preferowaną konfigurację i naciśnij 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, zostanie wyświetlony żółty pasek stanu z informacją, że funkcja IntelliSense zostanie zaktualizowana. Daje to szansę na anulowanie operacji aktualizacji. Aby uzyskać informacje na temat CMakeLists.txt
programu , zobacz dokumentację narzędzia CMake.
Plik zawiera: projekt (hello-cmake), add_subdirectory (testy), add_executable (hello hello.cpp) i zainstaluj (TARGETS hello DESTINATION hello/bin). Komunikat w górnej części okna mówi, że c plus plus informacje IntelliSense zostaną odświeżone po zakończeniu generowania pamięci podręcznej przez funkcję C Make.
Gdy tylko zapiszesz plik, krok konfiguracji zostanie uruchomiony ponownie i wyświetli 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 błędu w pliku CMakeLists.txt
.
W wierszu 3 CMakeLists.txt wyróżniono komunikat o błędzie C Make. Szczegóły dotyczą tego, że funkcja C Make nie może znaleźć pliku konfiguracji pakietu dostarczonego przez usługę sqlite3. C Make szukał go w CMAKE_MODULE_PATH, ale nie mógł go znaleźć. Sugestią jest dodanie prefiksu instalacji "sqlite3" do CMAKE_PREFIX_PATH lub ustawienie sqlite3_DIR do katalogu zawierającego plik sqlite3Config.cmake i/lub sqlitet3-config.cmake.
Krok konfigurowania narzędzia CMake
Po wprowadzeniu istotnych zmian w plikach CMakeSettings.json
lub CMakeLists.txt
program Visual Studio automatycznie ponownie uruchomi krok konfiguracji narzędzia CMake. Jeśli krok konfigurowania zakończy się bez błędów, zebrane informacje są dostępne w funkcjach IntelliSense i usługach 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 wbudowane (w ich własnym folderze głównym kompilacji) po wybraniu tej konfiguracji. Obiekty docelowe można debugować we wszystkich projektach CMake, które uczestniczą w tej konfiguracji narzędzia CMake.
Menu kontekstowe pokazuje, co można skompilować w tym przypadku hello-cmake-a \ hello-cmake.exe (Project hello-cmake) i hello-cmake-b\hello-cmake.exe (Project hello-cmake). Ten ostatni jest wyróżniony.
Możesz ograniczyć kompilacje i sesje debugowania 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 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 narzędzia CMake lub CMakeLists.txt
menu kontekstowe w Eksplorator rozwiązań, aby uruchomić jedno z następujących poleceń:
Widok pamięci podręcznej otwiera
CMakeCache.txt
plik z folderu głównego kompilacji w edytorze. (Wszelkie zmiany, które należy wprowadzić w tym miejscuCMakeCache.txt
, 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.
Czyszczenie pamięci podręcznej usuwa folder główny kompilacji , tak 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 program 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ę Kompiluj 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 programie Visual Studio 2015 użytkownicy programu Visual Studio mogą użyć generatora CMake do generowania plików projektu MSBuild, które następnie środowisko IDE używa dla funkcji IntelliSense, przeglądania i kompilacji.
Zobacz też
Samouczek: tworzenie projektów międzyplatformowych 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
Dokumentacja wstępnie zdefiniowanej konfiguracji narzędzia CMake
vcpkg w projektach CMake
Instalowanie i używanie pakietów za pomocą narzędzia CMake w programie Visual Studio