Menu Zamknij

Projekty CMake w Visual Studio

Komponent C++ CMake tools for Windows wykorzystuje funkcję Open Folder do bezpośredniego wykorzystania plików projektów CMake (takich jak CMakeLists.txt) do celów IntelliSense i przeglądania. Obsługiwane są zarówno generatory Ninja jak i Visual Studio. Jeśli używasz generatora Visual Studio, generuje on tymczasowy plik projektu i przekazuje go do msbuild.exe. Jednakże projekt ten nigdy nie jest ładowany dla celów IntelliSense lub przeglądania. Można również zaimportować istniejącą pamięć podręczną CMake.

Instalacja

Narzędzia CMake dla Windows są instalowane jako część programów Desktop Development with C++ i Linux Development with C++. Więcej informacji można znaleźć w rozdziale Projekty CMake dla systemów wieloplatformowych.

Więcej informacji można znaleźć w rozdziale Instalowanie obciążenia C++ Linux w Visual Studio.

IntegracjaIDE

Gdy wybierzesz Plik > Otwórz > Folder, aby otworzyć folder zawierający plik CMakeLists.txt, dzieją się następujące rzeczy:

  • Visual Studio dodaje pozycje CMake do menu Project, z poleceniami do przeglądania i edycji skryptów CMake.

  • Solution Explorer wyświetla strukturę folderów i plików.

  • Visual Studio uruchamia cmake.exe i generuje plik pamięci podręcznej CMake (CMakeCache.txt) dla domyślnej konfiguracji (x64 Debug). Wiersz poleceń CMake jest wyświetlany w oknie Wyjście, wraz z dodatkowymi danymi wyjściowymi z CMake.

  • W tle, Visual Studio rozpoczyna indeksowanie plików źródłowych, aby umożliwić IntelliSense, przeglądanie informacji, refaktoryzację i tak dalej. Podczas pracy, Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby utrzymać swój indeks w synchronizacji ze źródłami.

Możesz otworzyć foldery zawierające dowolną liczbę projektów CMake. Visual Studio wykrywa i konfiguruje wszystkie pliki „root” CMakeLists.txt w twoim obszarze roboczym. Operacje CMake (konfiguracja, kompilacja, debugowanie), C++ IntelliSense i przeglądanie są dostępne dla wszystkich projektów CMake w twojej przestrzeni roboczej.

Możesz również przeglądać swoje projekty logicznie uporządkowane według celów. Wybierz widok Targets z rozwijanej listy na pasku narzędzi Solution Explorer:

Kliknij przycisk Show All Files na górze Solution Explorer, aby zobaczyć wszystkie pliki wyjściowe wygenerowane przez CMake w folderach out/build/<config>.

Visual Studio używa pliku konfiguracyjnego o nazwie CMakeSettings.json. Plik ten pozwala na zdefiniowanie i przechowywanie wielu konfiguracji budowania, oraz wygodne przełączanie się pomiędzy nimi w IDE. Konfiguracja jest konstrukcją Visual Studio, która enkapsuluje ustawienia specyficzne dla danego typu kompilacji. Ustawienia te są używane do konfigurowania domyślnych opcji wiersza poleceń, które Visual Studio przekazuje do cmake.exe. Można tu również określić dodatkowe opcje CMake oraz zdefiniować dowolne dodatkowe zmienne. Wszystkie opcje są zapisywane w pamięci podręcznej CMake albo jako zmienne wewnętrzne, albo zewnętrzne. W Visual Studio 2019, edytor ustawień CMake zapewnia wygodny sposób edycji ustawień. Aby uzyskać więcej informacji, zobacz Dostosuj ustawienia CMake.

Jedno ustawienie, intelliSenseMode nie jest przekazywane do CMake, ale jest używane tylko przez Visual Studio.

Używaj pliku CMakeLists.txt w każdym folderze projektu, tak jak w każdym projekcie CMake. Można w nim określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i linkera oraz określić inne informacje związane z systemem budowania.

Aby przekazać argumenty do pliku wykonywalnego w czasie debugowania, można 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 lub nawet samemu utworzyć taki plik.

Uwaga

Dla innych rodzajów projektów Open Folder używane są dwa dodatkowe pliki JSON: CppProperties.json oraz tasks.vs.json. Żaden z nich nie jest istotny dla projektów CMake.

Otwórz istniejącą pamięć podręczną

Gdy otwierasz istniejący plik pamięci podręcznej CMake (CMakeCache.txt), Visual Studio nie próbuje zarządzać pamięcią podręczną i drzewem kompilacji za Ciebie. Twoje własne lub preferowane narzędzia mają pełną kontrolę nad tym jak CMake konfiguruje twój projekt. Aby otworzyć istniejącą pamięć podręczną w Visual Studio, wybierz Plik > Otwórz > CMake. Następnie przejdź do istniejącego pliku CMakeCache.txt.

Możesz dodać istniejącą pamięć podręczną CMake do otwartego projektu. Robi się to w ten sam sposób, w jaki dodaje się nową konfigurację. Aby uzyskać więcej informacji, zobacz nasz wpis na blogu dotyczący otwierania istniejącej pamięci podręcznej w Visual Studio.

Budowanie projektów CMake

Aby zbudować projekt CMake, masz następujące możliwości:

  1. W pasku narzędzi Ogólne, znajdź zakładkę Konfiguracje. Prawdopodobnie domyślnie jest to „x64-Debug”. Wybierz preferowaną konfigurację i naciśnij F5, lub kliknij przycisk Uruchom (zielony trójkąt) na pasku narzędzi. Projekt automatycznie zbuduje się jako pierwszy, tak jak rozwiązanie Visual Studio.

  2. Kliknij prawym przyciskiem myszy na CMakeLists.txt i wybierz Build z menu kontekstowego. Jeśli masz wiele celów w swojej strukturze folderów, możesz wybrać budowanie wszystkich lub tylko jednego określonego celu.

  3. Z menu głównego wybierz Build > Build All (F7 lub Ctrl+Shift+B). Upewnij się, że cel CMake jest już zaznaczony na pasku narzędziowym Ogólne.

Jak można się spodziewać, wyniki kompilacji są wyświetlane w oknie Wyjście i Lista błędów.

W folderze z wieloma celami kompilacji, możesz określić, który cel CMake ma być kompilowany: Wybierz element Build w menu CMake lub menu kontekstowe CMakeLists.txt, aby określić cel. Jeśli wpiszesz Ctrl+Shift+B w projekcie CMake, zbuduje on bieżący aktywny dokument.

Debugowanie projektów CMake

Aby debugować projekt CMake, wybierz preferowaną konfigurację i naciśnij F5, lub naciśnij przycisk Uruchom na pasku narzędzi. Jeśli przycisk Run mówi „Select Startup Item”, wybierz strzałkę rozwijaną. Wybierz cel, który chcesz uruchomić. (W projekcie CMake, opcja „Bieżący dokument” jest ważna tylko dla plików .cpp.)

Komendy Run lub F5 najpierw budują projekt, jeśli zostały wprowadzone zmiany od czasu poprzedniej kompilacji. Zmiany w pliku CMakeSettings.json powodują regenerację pamięci podręcznej CMake.

Można dostosować sesję debugowania CMake poprzez ustawienie właściwości w pliku launch.vs.json. Aby uzyskać więcej informacji, zobacz Konfiguracja sesji debugowania CMake.

Just My Code dla projektów CMake

Gdy budujesz dla Windows używając kompilatora MSVC, projekty CMake mają wsparcie dla debugowania Just My Code. Aby zmienić ustawienie Just My Code, przejdź do Narzędzia > Opcje > Debugowanie > Ogólne.

Integracja vcpkg

Jeśli zainstalowałeś vcpkg, projekty CMake otwarte w Visual Studio automatycznie integrują plik toolchain vcpkg. Oznacza to, że nie jest wymagana żadna dodatkowa konfiguracja, aby używać vcpkg z projektami CMake. Wsparcie to działa zarówno dla lokalnych instalacji vcpkg jak i dla instalacji vcpkg na zdalnych systemach, do których kierujesz swoje projekty. To zachowanie jest wyłączane automatycznie, gdy podasz jakikolwiek inny toolchain w konfiguracji ustawień CMake.

Dostosuj informacje zwrotne o konfiguracji

Domyślnie, większość komunikatów konfiguracyjnych jest tłumiona, chyba że wystąpi błąd. Możesz zobaczyć wszystkie komunikaty poprzez włączenie tej funkcji w Narzędzia > Opcje > CMake.

Edycja plików CMakeLists.txt

Aby edytować plik CMakeLists.txt, kliknij prawym przyciskiem myszy na plik w Solution Explorerze i wybierz Otwórz. Jeśli dokonasz zmian w pliku, pojawi się żółty pasek stanu i poinformuje Cię, że IntelliSense będzie aktualizowany. Daje on możliwość anulowania operacji aktualizacji. Informacje o pliku CMakeLists.txt można znaleźć w dokumentacji CMake.

Jak tylko zapiszemy plik, krok konfiguracji automatycznie uruchamia się ponownie i wyświetla informacje w oknie Output. Błędy i ostrzeżenia są wyświetlane na liście błędów lub w oknie Wyjście. Dwukrotne kliknięcie na błąd na Liście Błędów umożliwia przejście do niewłaściwej linii w CMakeLists.txt.

Krok konfiguracji CMake

Gdy dokonamy znaczących zmian w plikach CMakeSettings.json lub CMakeLists.txt, Visual Studio automatycznie powtórzy krok konfiguracji CMake. Jeśli krok konfiguracji zakończy się bez błędów, zebrane informacje są dostępne w C++ IntelliSense i usługach językowych. Są one również używane w operacjach budowania i debugowania.

Rozwiązywanie błędów pamięci podręcznej CMake

Jeśli potrzebujesz więcej informacji o stanie pamięci podręcznej CMake, aby zdiagnozować problem, otwórz menu główne Projekt lub menu kontekstowe CMakeLists.txt w Solution Explorer, aby uruchomić jedno z tych poleceń:

  • View Cache otwiera plik CMakeCache.txt z głównego folderu budowania w edytorze. (Wszelkie zmiany dokonane w CMakeCache.txt zostaną wymazane po wyczyszczeniu pamięci podręcznej. Aby wprowadzić zmiany, które zostaną zachowane po wyczyszczeniu pamięci podręcznej, zobacz Dostosuj ustawienia CMake.)

  • Open Cache Folder otwiera okno Eksploratora do głównego folderu kompilacji.

  • Clean Cache usuwa główny folder kompilacji tak, że następny krok konfiguracji CMake zaczyna się od czystej pamięci podręcznej.

  • Generate Cache wymusza uruchomienie kroku generowania nawet jeśli Visual Studio uważa środowisko za aktualne.

Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Run CMake from the command line

If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Run the appropriate vsdevcmd.bat (x86/x64). For more information, see Building on the Command Line.

  2. Switch to your output folder.

  3. Run CMake to build/configure your app.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *