CMake projekty w programie Visual StudioCMake projects in Visual Studio

CMAKE to międzyplatformowe narzędzie typu open source służące do definiowania procesów kompilacji, które są uruchamiane na wielu platformach.CMake is a cross-platform, open-source tool for defining build processes that run on multiple platforms. W tym artykule założono, że znasz już CMake.This article assumes you're familiar with CMake. Aby uzyskać więcej informacji na temat CMake, zobacz dokumentację dotyczącą CMAKE.For more information about CMake, see the CMake documentation. Samouczek CMAKE to dobry punkt wyjścia, aby dowiedzieć się więcej.The CMake tutorial is a good starting point to learn more.

Uwaga

CMake stał się bardziej i bardziej zintegrowany z programem Visual Studio w ciągu ostatnich kilku wydań.CMake has become more and more integrated with Visual Studio over the past few releases. Aby wyświetlić dokumentację preferowanej wersji programu Visual Studio, użyj kontrolki selektora wersji .To see the documentation for your preferred version of Visual Studio, use the Version selector control. Znajduje się w górnej części spisu treści na tej stronie.It's found at the top of the table of contents on this page.

Składnik C++ CMAKE Tools for Windows korzysta z funkcji Otwórz folder , aby używać plików projektu CMake (takich jak CMakeLists.txt) bezpośrednio na potrzeby funkcji IntelliSense i przeglądania.The C++ CMake tools for Windows component uses the Open Folder feature to consume CMake project files (such as CMakeLists.txt) directly for the purposes of IntelliSense and browsing. Obsługiwane są zarówno generatory ninja, jak i Visual Studio.Both Ninja and Visual Studio generators are supported. Jeśli używasz generatora programu Visual Studio, generuje on tymczasowy plik projektu i przekazuje go do msbuild.exe.If you use a Visual Studio generator, it generates a temporary project file and passes it to msbuild.exe. Jednak projekt nigdy nie jest ładowany do celów IntelliSense ani do przeglądania.However, the project is never loaded for IntelliSense or browsing purposes. Istnieje również możliwość zaimportowania istniejącej pamięci podręcznej CMake.You can also import an existing CMake cache.

InstalacjaInstallation

Narzędzia C++ CMAKE Tools for Windows są instalowane w ramach programowania aplikacji klasycznych w języku c++ i Linux przy użyciu obciążeń języka c++ .C++ CMake tools for Windows is installed as part of the Desktop development with C++ and Linux Development with C++ workloads. Aby uzyskać więcej informacji, zobacz Międzyplatformowe projekty CMAKE.For more information, see Cross-platform CMake projects.

Zrzut ekranu przedstawiający Programowanie aplikacji klasycznych z wybranym listą rozwijaną C i Plus oraz poleceniem C + + C Utwórz narzędzia dla systemu Windows o nazwie wychodzącej.

Aby uzyskać więcej informacji, zobacz Instalowanie obciążeń C++ Linux w programie Visual Studio.For more information, see Install the C++ Linux workload in Visual Studio.

Integracja IDEIDE Integration

Po wybraniu opcji plik > Otwórz folder > , aby otworzyć folder zawierający plik CMakeLists.txt , następujące kwestie zachodzą poniżej:When you choose File > Open > Folder to open a folder containing a CMakeLists.txt file, the following things happen:

  • Program Visual Studio dodaje CMAKE elementy do menu projekt z poleceniami służącymi do wyświetlania i edytowania skryptów CMAKE.Visual Studio adds CMake items to the Project menu, with commands for viewing and editing CMake scripts.

  • Eksplorator rozwiązań Wyświetla strukturę folderów i pliki.Solution Explorer displays the folder structure and files.

  • Program Visual Studio działa cmake.exe i generuje plik pamięci podręcznej CMake (CMakeCache.txt) dla konfiguracji domyślnej (debugowanie x64).Visual Studio runs cmake.exe and generates the CMake cache file (CMakeCache.txt) for the default (x64 Debug) configuration. Wiersz polecenia CMake jest wyświetlany w okno dane wyjściowe wraz z dodatkowymi danymi wyjściowymi z CMAKE.The CMake command line is displayed in the Output Window, along with additional output from CMake.

  • W tle program Visual Studio zaczyna indeksować pliki źródłowe w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji i tak dalej.In the background, Visual Studio starts to index the source files to enable IntelliSense, browsing information, refactoring, and so on. Podczas pracy program Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby zachować synchronizację indeksu ze źródłami.As you work, Visual Studio monitors changes in the editor and also on disk to keep its index in sync with the sources.

Można otwierać foldery zawierające dowolną liczbę projektów CMake.You can open folders containing any number of CMake projects. Program Visual Studio wykrywa i konfiguruje wszystkie pliki "root" CMakeLists.txt w obszarze roboczym.Visual Studio detects and configures all the "root" CMakeLists.txt files in your workspace. Operacje CMake (Konfigurowanie, kompilowanie, debugowanie), IntelliSense w języku C++ i przeglądanie są dostępne dla wszystkich projektów CMake w Twoim obszarze roboczym.CMake operations (configure, build, debug), C++ IntelliSense, and browsing are available to all CMake projects in your workspace.

CMake projekt z wieloma katalogami głównymi

Możesz również wyświetlać projekty zorganizowane logicznie według celów.You can also view your projects organized logically by targets. Wybierz widok obiektów docelowych z listy rozwijanej na pasku narzędzi Eksplorator rozwiązań :Choose Targets view from the dropdown in the Solution Explorer toolbar:

Przycisk Widok elementów docelowych CMake

Kliknij przycisk Pokaż wszystkie pliki w górnej części Eksplorator rozwiązań , aby wyświetlić wszystkie dane wyjściowe generowane przez CMAKE w folderze out/Build/ <config> .Click the Show All Files button at the top of Solution Explorer to see all the CMake-generated output in the out/build/<config> folders.

Program Visual Studio używa pliku konfiguracji o nazwie CMakeSettings.json.Visual Studio uses a configuration file called CMakeSettings.json. Ten plik umożliwia definiowanie i przechowywanie wielu konfiguracji kompilacji oraz wygodne przełączanie się między nimi w środowisku IDE.This file lets you define and store multiple build configurations, and conveniently switch between them in the IDE. Konfiguracja to konstrukcja programu Visual Studio, która hermetyzuje ustawienia specyficzne dla danego typu kompilacji.A configuration is a Visual Studio construct that encapsulates settings that are specific to a given build type. Ustawienia służą do konfigurowania domyślnych opcji wiersza polecenia, które program Visual Studio przekazuje do cmake.exe.The settings are used to configure the default command-line options that Visual Studio passes to cmake.exe. W tym miejscu możesz również określić dodatkowe opcje CMake i zdefiniować wszelkie dodatkowe zmienne, które chcesz.You can also specify additional CMake options here, and define any additional variables you like. Wszystkie opcje są zapisywane w pamięci podręcznej CMake jako zmienne wewnętrzne lub zewnętrzne.All options are written to the CMake cache either as internal or external variables. W programie Visual Studio 2019 Edytor ustawień CMAKE zapewnia wygodny sposób edytowania ustawień.In Visual Studio 2019, the CMake Settings Editor provides a convenient way to edit your settings. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień CMAKE.For more information, see Customize CMake settings.

Jedno ustawienie intelliSenseMode nie jest przesyłane do cmake, ale jest używane tylko przez program Visual Studio.One setting, intelliSenseMode isn't passed to CMake, but is used only by Visual Studio.

Użyj pliku CMakeLists.txt w każdym folderze projektu tak samo jak w każdym projekcie CMAKE.Use the CMakeLists.txt file in each project folder just as you would in any CMake project. Można określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i konsolidatora, a także określić inne informacje związane z systemem kompilacji.You can specify source files, find libraries, set compiler and linker options, and specify other build system-related information.

Aby przekazać argumenty do pliku wykonywalnego w czasie debugowania, można użyć innego pliku o nazwie launch.vs.jsna.To pass arguments to an executable at debug time, you can use another file called launch.vs.json. W niektórych scenariuszach program Visual Studio automatycznie generuje te pliki.In some scenarios, Visual Studio automatically generates these files. Można edytować je ręcznie, a nawet samodzielnie tworzyć pliki.You can edit them manually, or even create the file yourself.

Uwaga

W przypadku innych rodzajów projektów typu "Open folder" są używane dwa dodatkowe pliki JSON: CppProperties.json i tasks.vs.json.For other kinds of Open Folder projects, two additional JSON files are used: CppProperties.json and tasks.vs.json. Żadna z tych elementów nie jest istotna dla projektów CMake.Neither of these are relevant for CMake projects.

Otwieranie istniejącej pamięci podręcznejOpen an existing cache

Gdy otworzysz istniejący plik pamięci podręcznej CMake (CMakeCache.txt), program Visual Studio nie spróbuje zarządzać pamięcią podręczną i drzewem kompilacji.When you open an existing CMake cache file (CMakeCache.txt), Visual Studio doesn't try to manage your cache and build tree for you. Niestandardowe lub preferowane narzędzia mają pełną kontrolę nad sposobem konfigurowania projektu przez program CMake.Your custom or preferred tools have complete control over how CMake configures your project. Aby otworzyć istniejącą pamięć podręczną w programie Visual Studio, wybierz pozycję plik > otwórz > CMAKE.To open an existing cache in Visual Studio, choose File > Open > CMake. Następnie przejdź do istniejącego pliku CMakeCache.txt .Then, navigate to an existing CMakeCache.txt file.

Do otwartego projektu można dodać istniejącą pamięć podręczną CMake.You can add an existing CMake cache to an open project. W ten sam sposób można dodać nową konfigurację.It's done the same way you'd add a new configuration. Aby uzyskać więcej informacji, zobacz nasz wpis w blogu na temat otwierania istniejącej pamięci podręcznej w programie Visual Studio.For more information, see our blog post on opening an existing cache in Visual Studio.

Kompilowanie projektów CMakeBuilding CMake projects

Aby skompilować projekt CMake, możesz wybrać następujące opcje:To build a CMake project, you have these choices:

  1. Na pasku narzędzi Ogólne znajdź listę rozwijaną konfiguracje .In the General toolbar, find the Configurations dropdown. Prawdopodobnie domyślnie jest wyświetlana wartość "x64-debug".It probably shows "x64-Debug" by default. Wybierz preferowaną konfigurację i naciśnij klawisz F5 lub kliknij przycisk Uruchom (zielony trójkąt) na pasku narzędzi.Select the preferred configuration and press F5, or click the Run (green triangle) button on the toolbar. Projekt automatycznie kompiluje się jako pierwszy, podobnie jak rozwiązanie Visual Studio.The project automatically builds first, just like a Visual Studio solution.

  2. Kliknij prawym przyciskiem myszy CMakeLists.txt i wybierz opcję Kompiluj z menu kontekstowego.Right click on CMakeLists.txt and select Build from the context menu. Jeśli masz wiele obiektów docelowych w strukturze folderów, możesz utworzyć wszystko lub tylko jeden określony element docelowy.If you have multiple targets in your folder structure, you can choose to build all or only one specific target.

  3. Z menu głównego wybierz kolejno opcje kompiluj > Kompiluj wszystko (F7 lub Ctrl + Shift + B).From the main menu, select Build > Build All (F7 or Ctrl+Shift+B). Upewnij się, że element docelowy CMake został już wybrany na liście rozwijanej elementu startowego na pasku narzędzi Ogólne .Make sure that a CMake target is already selected in the Startup Item dropdown in the General toolbar.

CMake — polecenie menu kompilacjiCMake build menu command

Zgodnie z oczekiwaniami wyniki kompilacji są wyświetlane w okno dane wyjściowe i Lista błędów.As you would expect, build results are shown in the Output Window and Error List.

Błędy kompilacji CMakeCMake build errors

W folderze z wieloma obiektami docelowymi kompilacji można określić, który element docelowy CMake do skompilowania: Wybierz element Build w menu CMAKE lub menu kontekstowego CMakeLists.txt , aby określić element docelowy.In a folder with multiple build targets, you can specify which CMake target to build: Choose the Build item on the CMake menu or the CMakeLists.txt context menu to specify the target. Jeśli wprowadzisz kombinację klawiszy Ctrl + Shift + B w projekcie cmake, kompiluje bieżący aktywny dokument.If you enter Ctrl+Shift+B in a CMake project, it builds the current active document.

Debugowanie projektów CMakeDebugging CMake projects

Aby debugować projekt CMake, wybierz preferowaną konfigurację i naciśnij klawisz F5 lub naciśnij przycisk Run (Uruchom ) na pasku narzędzi.To debug a CMake project, choose the preferred configuration and press F5, or press the Run button in the toolbar. Jeśli przycisk Uruchom ma wartość "Wybierz element startowy", wybierz strzałkę listy rozwijanej.If the Run button says "Select Startup Item", select the dropdown arrow. Wybierz obiekt docelowy, który chcesz uruchomić.Choose the target that you want to run. (W projekcie CMake opcja "bieżący dokument" jest prawidłowa tylko dla plików. cpp).(In a CMake project, the "Current document" option is only valid for .cpp files.)

Przycisk uruchamiania CMakeCMake run button

Polecenia Uruchom lub F5 najpierw kompilują projekt, jeśli wprowadzono zmiany od czasu poprzedniej kompilacji.The Run or F5 commands first build the project if changes have been made since the previous build. Zmiany CMakeSettings.jsna wygenerowanie pamięci podręcznej CMAKE.Changes to CMakeSettings.json cause the CMake cache to be regenerated.

Można dostosować sesję debugowania CMake przez ustawienie właściwości w launch.vs.js pliku.You can customize a CMake debugging session by setting properties in the launch.vs.json file. Aby uzyskać więcej informacji, zobacz Konfigurowanie sesji debugowania CMAKE.For more information, see Configure CMake debugging sessions.

Tylko mój kod projektów CMakeJust My Code for CMake projects

Podczas kompilowania dla systemu Windows za pomocą kompilatora MSVC, projekty CMake obsługują debugowanie Tylko mój kod.When you build for Windows using the MSVC compiler, CMake projects have support for Just My Code debugging. Aby zmienić ustawienie tylko mój kod, przejdź do pozycji Narzędzia > Opcje > debugowanie > Ogólne.To change the Just My Code setting, go to Tools > Options > Debugging > General.

Integracja VcpkgVcpkg integration

Jeśli zainstalowano vcpkg, projekty CMAKE otwarte w programie Visual Studio automatycznie integrują plik vcpkg łańcucha narzędzi.If you have installed vcpkg, CMake projects opened in Visual Studio automatically integrate the vcpkg toolchain file. Oznacza to, że żadna dodatkowa konfiguracja nie jest wymagana do używania vcpkg z projektami CMake.That means no additional configuration is required to use vcpkg with your CMake projects. Ta obsługa działa zarówno w przypadku lokalnych instalacji vcpkg, jak i instalacji vcpkg w systemach zdalnych, które są przeznaczone do celów.This support works for both local vcpkg installations and vcpkg installations on remote systems that you're targeting. To zachowanie jest wyłączone automatycznie po określeniu innych łańcucha narzędzi w konfiguracji ustawień CMake.This behavior is disabled automatically when you specify any other toolchain in your CMake Settings configuration.

Dostosowywanie informacji o konfiguracjiCustomize configuration feedback

Domyślnie większość komunikatów konfiguracyjnych jest pomijana, o ile wystąpi błąd.By default, most configuration messages are suppressed unless there's an error. Aby wyświetlić wszystkie komunikaty, Włącz tę funkcję w opcji Narzędzia > > CMAKE.You can see all messages by enabling this feature in Tools > Options > CMake.

Konfigurowanie opcji diagnostycznych CMakeConfiguring CMake diagnostic options

Edytowanie plików CMakeLists.txtEditing CMakeLists.txt files

Aby edytować plik CMakeLists.txt , kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań i wybierz polecenie Otwórz.To edit a CMakeLists.txt file, right-click on the file in Solution Explorer and choose Open. Po wprowadzeniu zmian w pliku zostanie wyświetlony żółty pasek stanu z informacją o tym, że IntelliSense zaktualizuje.If you make changes to the file, a yellow status bar appears and informs you that IntelliSense will update. Pozwala to na anulowanie operacji aktualizacji.It gives you a chance to cancel the update operation. Aby uzyskać informacje na temat CMakeLists.txt, zobacz dokumentację CMAKE.For information about CMakeLists.txt, see the CMake documentation.

 Edycja plikuCMakeLists.txtCMakeLists.txt file editing

Po zapisaniu pliku krok konfiguracji zostanie automatycznie uruchomiony ponownie i zostaną wyświetlone informacje w oknie danych wyjściowych .As soon as you save the file, the configuration step automatically runs again and displays information in the Output window. Błędy i ostrzeżenia są wyświetlane w oknie Lista błędów lub dane wyjściowe .Errors and warnings are shown in the Error List or Output window. Kliknij dwukrotnie błąd w Lista błędów , aby przejść do wiersza błędnego w CMakeLists.txt.Double-click on an error in the Error List to navigate to the offending line in CMakeLists.txt.

 Błędy plikówCMakeLists.txtCMakeLists.txt file errors

Krok konfigurowania CMakeCMake configure step

Po wprowadzeniu znaczących zmian w CMakeSettings.js lub CMakeLists.txt plików program Visual Studio automatycznie ponownie uruchamia krok konfigurowania CMAKE.When you make significant changes to the CMakeSettings.json or to CMakeLists.txt files, Visual Studio automatically reruns the CMake configure step. Jeśli krok konfiguracji zakończy się bez błędów, zbierane informacje są dostępne w języku C++ IntelliSense i w usługach językowych.If the configure step finishes without errors, the information that's collected is available in C++ IntelliSense and language services. Jest on również używany w operacjach kompilowania i debugowania.It's also used in build and debug operations.

Rozwiązywanie problemów z pamięcią podręczną CMakeTroubleshooting CMake cache errors

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 menu kontekstowe CMakeLists.txt w Eksplorator rozwiązań , aby uruchomić jedno z następujących poleceń:If you need more information about the state of the CMake cache to diagnose a problem, open the Project main menu or the CMakeLists.txt context menu in Solution Explorer to run one of these commands:

  • Wyświetl pamięć podręczną otwiera plik CMakeCache.txt z folderu głównego kompilacji w edytorze.View Cache opens the CMakeCache.txt file from the build root folder in the editor. (Wszelkie zmiany wprowadzone w tym miejscu CMakeCache.txt są czyszczone w przypadku oczyszczenia pamięci podręcznej.(Any edits you make here to CMakeCache.txt are wiped out if you clean the cache. Aby wprowadzić zmiany, które są utrwalane po wyczyszczeniu pamięci podręcznej, zobacz Dostosowywanie ustawień CMAKE.)To make changes that persist after the cache is cleaned, see Customize CMake settings.)

  • Otwórz folder pamięci podręcznej powoduje otwarcie okna Eksploratora w folderze głównym kompilacji.Open Cache Folder opens an Explorer window to the build root folder.

  • Czyszczenie pamięci podręcznej powoduje usunięcie głównego folderu kompilacji, dzięki czemu następny krok CMAKE Konfiguruj rozpocznie się z czystej pamięci podręcznej.Clean Cache deletes the build root folder so that the next CMake configure step starts from a clean cache.

  • Generuj pamięć podręczną wymusza, aby krok generowania był uruchamiany nawet wtedy, gdy program Visual Studio uzna, że to środowisko jest aktualne.Generate Cache forces the generate step to run even if Visual Studio considers the environment up to date.

Automatyczne generowanie pamięci podręcznej można wyłączyć w oknie narzędzia > opcje > CMake > ogólne .Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Uruchom CMake z wiersza poleceniaRun CMake from the command line

Jeśli zainstalowano CMake z Instalator programu Visual Studio, można uruchomić je z poziomu wiersza polecenia, wykonując następujące czynności:If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Uruchom odpowiednie vsdevcmd.bat (x86/x64).Run the appropriate vsdevcmd.bat (x86/x64). Aby uzyskać więcej informacji, zobacz Kompilowanie w wierszu polecenia.For more information, see Building on the Command Line.

  2. Przejdź do folderu wyjściowego.Switch to your output folder.

  3. Uruchom CMake, aby skompilować/skonfigurować aplikację.Run CMake to build/configure your app.

Program Visual Studio 2017 ma rozbudowaną obsługę CMake, w tym wieloplatformowych projektów CMAKE.Visual Studio 2017 has rich support for CMake, including cross-platform CMake projects. Składnik Visual C++ Tools for CMAKE korzysta z funkcji Otwórz folder , aby umożliwić IDE korzystanie z plików projektu CMake (takich jak CMakeLists.txt) bezpośrednio na potrzeby funkcji IntelliSense i przeglądania.The Visual C++ Tools for CMake component uses the Open Folder feature to enable the IDE to consume CMake project files (such as CMakeLists.txt) directly for the purposes of IntelliSense and browsing. Obsługiwane są zarówno generatory ninja, jak i Visual Studio.Both Ninja and Visual Studio generators are supported. Jeśli używasz generatora programu Visual Studio, generuje on tymczasowy plik projektu i przekazuje go do msbuild.exe.If you use a Visual Studio generator, it generates a temporary project file and passes it to msbuild.exe. Jednak projekt nigdy nie jest ładowany do celów IntelliSense ani do przeglądania.However, the project is never loaded for IntelliSense or browsing purposes. Istnieje również możliwość zaimportowania istniejącej pamięci podręcznej CMake.You also can import an existing CMake cache.

InstalacjaInstallation

Narzędzia Visual C++ Tools for CMAKE są instalowane w ramach programowania aplikacji klasycznych w języku c++ i Linux przy użyciu obciążeń języka c++ .Visual C++ Tools for CMake is installed as part of the Desktop development with C++ and Linux Development with C++ workloads.

Zrzut ekranu przedstawiający kartę poszczególne składniki z narzędziami Visual C plus plus dla języka C.

Aby uzyskać więcej informacji, zobacz Instalowanie obciążeń C++ Linux w programie Visual Studio.For more information, see Install the C++ Linux workload in Visual Studio.

Integracja środowiska IDEIDE integration

Po wybraniu opcji plik > Otwórz folder > , aby otworzyć folder zawierający plik CMakeLists.txt , następujące kwestie zachodzą poniżej:When you choose File > Open > Folder to open a folder containing a CMakeLists.txt file, the following things happen:

  • Program Visual Studio dodaje do menu głównego element menu CMAKE z poleceniami służącymi do wyświetlania i edytowania skryptów CMAKE.Visual Studio adds a CMake menu item to the main menu, with commands for viewing and editing CMake scripts.

  • Eksplorator rozwiązań Wyświetla strukturę folderów i pliki.Solution Explorer displays the folder structure and files.

  • Program Visual Studio działa CMake.exe i opcjonalnie generuje pamięć podręczną CMake dla konfiguracji domyślnej, która jest debugowaniem x86.Visual Studio runs CMake.exe and optionally generates the CMake cache for the default configuration, which is x86 Debug. Wiersz polecenia CMake jest wyświetlany w okno dane wyjściowe wraz z dodatkowymi danymi wyjściowymi z CMAKE.The CMake command line is displayed in the Output Window, along with additional output from CMake.

  • W tle program Visual Studio zaczyna indeksować pliki źródłowe w celu włączenia funkcji IntelliSense, przeglądania informacji, refaktoryzacji i tak dalej.In the background, Visual Studio starts to index the source files to enable IntelliSense, browsing information, refactoring, and so on. Podczas pracy program Visual Studio monitoruje zmiany w edytorze, a także na dysku, aby zachować synchronizację indeksu ze źródłami.As you work, Visual Studio monitors changes in the editor and also on disk to keep its index in sync with the sources.

Można otwierać foldery zawierające dowolną liczbę projektów CMake.You can open folders containing any number of CMake projects. Program Visual Studio wykrywa i konfiguruje wszystkie pliki "root" CMakeLists.txt w obszarze roboczym.Visual Studio detects and configures all the "root" CMakeLists.txt files in your workspace. Operacje CMake (Konfigurowanie, kompilowanie, debugowanie), IntelliSense w języku C++ i przeglądanie są dostępne dla wszystkich projektów CMake w Twoim obszarze roboczym.CMake operations (configure, build, debug), C++ IntelliSense, and browsing are available to all CMake projects in your workspace.

CMake projekt z wieloma katalogami głównymi

Możesz również wyświetlać projekty zorganizowane logicznie według celów.You can also view your projects organized logically by targets. Wybierz widok obiektów docelowych z listy rozwijanej na pasku narzędzi Eksplorator rozwiązań :Choose Targets view from the dropdown in the Solution Explorer toolbar:

Przycisk Widok elementów docelowych CMake

Program Visual Studio używa pliku o nazwie CMakeSettings.jsna potrzeby przechowywania zmiennych środowiskowych lub opcji wiersza polecenia Cmake.exe.Visual Studio uses a file called CMakeSettings.json to store environment variables or command-line options for Cmake.exe. CMakeSettings.json umożliwia także Definiowanie i przechowywanie wielu konfiguracji kompilacji CMAKE.CMakeSettings.json also enables you to define and store multiple CMake build configurations. Można wygodnie przełączać się między nimi w środowisku IDE.You can conveniently switch between them in the IDE.

W przeciwnym razie użyj CMakeLists.txt tak samo jak w każdym projekcie cmake, aby określić pliki źródłowe, znaleźć biblioteki, ustawić opcje kompilatora i konsolidatora, a także określić inne informacje związane z systemem kompilacji.Otherwise, use the CMakeLists.txt just as you would in any CMake project to specify source files, find libraries, set compiler and linker options, and specify other build system-related information.

Jeśli musisz przekazać argumenty do pliku wykonywalnego w czasie debugowania, możesz użyć innego pliku o nazwie launch.vs.jsna.If you need to pass arguments to an executable at debug time, you can use another file called launch.vs.json. W niektórych scenariuszach program Visual Studio automatycznie generuje te pliki.In some scenarios, Visual Studio automatically generates these files. Można edytować je ręcznie, a nawet samodzielnie tworzyć pliki.You can edit them manually, or even create the file yourself.

Uwaga

W przypadku innych rodzajów projektów typu "Open folder" są używane dwa dodatkowe pliki JSON: CppProperties.json i tasks.vs.json.For other kinds of Open Folder projects, two additional JSON files are used: CppProperties.json and tasks.vs.json. Żadna z tych elementów nie jest istotna dla projektów CMake.Neither of these are relevant for CMake projects.

Importowanie istniejącej pamięci podręcznejImport an existing cache

Podczas importowania istniejącego pliku CMakeCache.txt program Visual Studio automatycznie wyodrębnia dostosowane zmienne i tworzy wstępnie wypełniony CMakeSettings.jsna pliku na podstawie tych elementów.When you import an existing CMakeCache.txt file, Visual Studio automatically extracts customized variables and creates a pre-populated CMakeSettings.json file based on them. Oryginalna pamięć podręczna nie jest w żaden sposób modyfikowana.The original cache isn't modified in any way. Może być nadal używany z wiersza polecenia lub z dowolnym narzędziem lub środowiskiem IDE używanym do jego wygenerowania.It can still be used from the command line, or with whatever tool or IDE used to generate it. Nowy CMakeSettings.jsw pliku zostanie umieszczony obok CMakeLists.txt głównej projektu.The new CMakeSettings.json file is placed alongside the project's root CMakeLists.txt. Program Visual Studio generuje nową pamięć podręczną opartą na pliku ustawień.Visual Studio generates a new cache based the settings file. Automatyczne generowanie pamięci podręcznej można przesłonić w oknie narzędzia > opcje > CMake > ogólne .You can override automatic cache generation in the Tools > Options > CMake > General dialog.

Nie wszystkie elementy w pamięci podręcznej są importowane.Not everything in the cache is imported. Właściwości, takie jak generator i lokalizacja kompilatorów, są zastępowane wartościami domyślnymi, które są znane do pracy z IDE.Properties such as the generator and the location of the compilers are replaced with defaults that are known to work well with the IDE.

Aby zaimportować istniejącą pamięć podręcznąTo import an existing cache

  1. Z menu głównego wybierz kolejno pozycje plik > otwórz > CMAKE:From the main menu, choose File > Open > CMake:

    Otwórz CMakeOpen CMake

    To polecenie powoduje wyświetlenie kreatora importu CMAKE z pamięci podręcznej .This command brings up the Import CMake from Cache wizard.

  2. Przejdź do pliku CMakeCache.txt , który chcesz zaimportować, a następnie kliknij przycisk OK.Navigate to the CMakeCache.txt file that you want to import, and then click OK. Zostanie wyświetlony Kreator importowania projektu CMAKE z pamięci podręcznej :The Import CMake Project from Cache wizard appears:

    Importowanie pamięci podręcznej CMakeImport a CMake cache

    Po zakończeniu pracy Kreatora zobaczysz nowy plik CMakeCache.txt w Eksplorator rozwiązań obok głównego pliku CMakeLists.txt w projekcie.When the wizard completes, you can see the new CMakeCache.txt file in Solution Explorer next to the root CMakeLists.txt file in your project.

Kompilowanie projektów CMakeBuilding CMake projects

Aby skompilować projekt CMake, możesz wybrać następujące opcje:To build a CMake project, you have these choices:

  1. Na pasku narzędzi Ogólne znajdź listę rozwijaną konfiguracje .In the General toolbar, find the Configurations dropdown. Prawdopodobnie domyślnie jest wyświetlany ekran "Linux-debug" lub "x64-debug".It's probably showing "Linux-Debug" or "x64-Debug" by default. Wybierz preferowaną konfigurację i naciśnij klawisz F5 lub kliknij przycisk Uruchom (zielony trójkąt) na pasku narzędzi.Select the preferred configuration and press F5, or click the Run (green triangle) button on the toolbar. Projekt automatycznie kompiluje się jako pierwszy, podobnie jak rozwiązanie Visual Studio.The project automatically builds first, just like a Visual Studio solution.

  2. Kliknij prawym przyciskiem myszy CMakeLists.txt i wybierz opcję Kompiluj z menu kontekstowego.Right click on the CMakeLists.txt and select Build from the context menu. Jeśli masz wiele obiektów docelowych w strukturze folderów, możesz utworzyć wszystko lub tylko jeden określony element docelowy.If you have multiple targets in your folder structure, you can choose to build all or only one specific target.

  3. Z menu głównego wybierz kolejno opcje kompiluj > Kompiluj rozwiązanie (F7 lub Ctrl + Shift + B).From the main menu, select Build > Build Solution (F7 or Ctrl+Shift+B). Upewnij się, że element docelowy CMake został już wybrany na liście rozwijanej elementu startowego na pasku narzędzi Ogólne .Make sure that a CMake target is already selected in the Startup Item dropdown in the General toolbar.

CMake — polecenie menu kompilacjiCMake build menu command

Można dostosować konfiguracje kompilacji, zmienne środowiskowe, argumenty wiersza polecenia i inne ustawienia w CMakeSettings.js pliku.You can customize build configurations, environment variables, command-line arguments, and other settings in the CMakeSettings.json file. Umożliwia wprowadzanie zmian bez modyfikowania pliku CMakeLists.txt .It lets you make changes without modifying the CMakeLists.txt file. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień CMAKE.For more information, see Customize CMake settings.

Zgodnie z oczekiwaniami wyniki kompilacji są wyświetlane w okno dane wyjściowe i Lista błędów.As you would expect, build results are shown in the Output Window and Error List.

Błędy kompilacji CMakeCMake build errors

W folderze z wieloma obiektami docelowymi kompilacji można określić, który element docelowy CMake do skompilowania: Wybierz element Build w menu CMAKE lub menu kontekstowego CMakeLists.txt , aby określić element docelowy.In a folder with multiple build targets, you can specify which CMake target to build: Choose the Build item on the CMake menu or the CMakeLists.txt context menu to specify the target. Jeśli wprowadzisz kombinację klawiszy Ctrl + Shift + B w projekcie cmake, kompiluje bieżący aktywny dokument.If you enter Ctrl+Shift+B in a CMake project, it builds the current active document.

Debugowanie projektów CMakeDebugging CMake projects

Aby debugować projekt CMake, wybierz preferowaną konfigurację i naciśnij klawisz F5.To debug a CMake project, choose the preferred configuration and press F5. Lub naciśnij przycisk Run (Uruchom ) na pasku narzędzi.Or, press the Run button in the toolbar. Jeśli przycisk Uruchom ma wartość "Wybierz element startowy", wybierz strzałkę listy rozwijanej i wybierz obiekt docelowy, który chcesz uruchomić.If the Run button says "Select Startup Item", select the dropdown arrow and choose the target that you want to run. (W projekcie CMake opcja "bieżący dokument" jest prawidłowa tylko dla plików. cpp).(In a CMake project, the "Current document" option is only valid for .cpp files.)

Przycisk uruchamiania CMakeCMake run button

Polecenia Uruchom lub F5 najpierw kompilują projekt, jeśli wprowadzono zmiany od czasu poprzedniej kompilacji.The Run or F5 commands first build the project if changes have been made since the previous build.

Można dostosować sesję debugowania CMake przez ustawienie właściwości w launch.vs.js pliku.You can customize a CMake debugging session by setting properties in the launch.vs.json file. Aby uzyskać więcej informacji, zobacz Konfigurowanie sesji debugowania CMAKE.For more information, see Configure CMake debugging sessions.

Edytowanie plików CMakeLists.txtEditing CMakeLists.txt files

Aby edytować plik CMakeLists.txt , kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań i wybierz polecenie Otwórz.To edit a CMakeLists.txt file, right-click on the file in Solution Explorer and choose Open. Po wprowadzeniu zmian w pliku zostanie wyświetlony żółty pasek stanu z informacją o tym, że IntelliSense zaktualizuje.If you make changes to the file, a yellow status bar appears and informs you that IntelliSense will update. Pozwala to na anulowanie operacji aktualizacji.It gives you a chance to cancel the update operation. Aby uzyskać informacje na temat CMakeLists.txt, zobacz dokumentację CMAKE.For information about CMakeLists.txt, see the CMake documentation.

 Edycja plikuCMakeLists.txtCMakeLists.txt file editing

Po zapisaniu pliku krok konfiguracji zostanie automatycznie uruchomiony ponownie i zostaną wyświetlone informacje w oknie danych wyjściowych .As soon as you save the file, the configuration step automatically runs again and displays information in the Output window. Błędy i ostrzeżenia są wyświetlane w oknie Lista błędów lub dane wyjściowe .Errors and warnings are shown in the Error List or Output window. Kliknij dwukrotnie błąd w Lista błędów , aby przejść do wiersza błędnego w CMakeLists.txt.Double-click on an error in the Error List to navigate to the offending line in CMakeLists.txt.

 Błędy plikówCMakeLists.txtCMakeLists.txt file errors

Krok konfigurowania CMakeCMake configure step

Po wprowadzeniu znaczących zmian do CMakeSettings.js lub do CMakeLists.txt plików program Visual Studio automatycznie ponownie uruchamia krok konfigurowania CMAKE.When significant changes are made to the CMakeSettings.json or to CMakeLists.txt files, Visual Studio automatically reruns the CMake configure step. Jeśli krok konfiguracji zakończy się bez błędów, zbierane informacje są dostępne w języku C++ IntelliSense i w usługach językowych.If the configure step finishes without errors, the information that's collected is available in C++ IntelliSense and language services. Jest on również używany w operacjach kompilowania i debugowania.It's also used in build and debug operations.

Wiele projektów CMake może używać tej samej nazwy konfiguracji CMake (na przykład x86-Debug).Multiple CMake projects may use the same CMake configuration name (for example, x86-Debug). Wszystkie z nich są konfigurowane i kompilowane (we własnym folderze głównym kompilacji), gdy ta konfiguracja jest wybrana.All of them are configured and built (in their own build root folder) when that configuration is selected. Można debugować cele ze wszystkich projektów CMake, które uczestniczą w tej konfiguracji CMake.You can debug the targets from all of the CMake projects that participate in that CMake configuration.

Element menu tylko dla kompilacji CMakeCMake Build Only menu item

Można ograniczyć kompilacje i debugować sesje do podzbioru projektów w obszarze roboczym.You can limit builds and debug sessions to a subset of the projects in the workspace. Utwórz nową konfigurację o unikatowej nazwie w CMakeSettings.js pliku.Create a new configuration with a unique name in the CMakeSettings.json file. Następnie Zastosuj konfigurację tylko do tych projektów.Then, apply the configuration to those projects only. Po wybraniu tej konfiguracji, funkcja IntelliSense i polecenia Kompiluj i Debuguj stosują się tylko do tych określonych projektów.When that configuration is selected, IntelliSense and the build and debug commands only apply to those specified projects.

Rozwiązywanie problemów z pamięcią podręczną CMakeTroubleshooting CMake cache errors

Jeśli potrzebujesz więcej informacji na temat stanu pamięci podręcznej CMake w celu zdiagnozowania problemu, otwórz menu główne CMAKE lub menu kontekstowe CMakeLists.txt w Eksplorator rozwiązań , aby uruchomić jedno z następujących poleceń:If you need more information about the state of the CMake cache to diagnose a problem, open the CMake main menu or the CMakeLists.txt context menu in Solution Explorer to run one of these commands:

  • Wyświetl pamięć podręczną otwiera plik CMakeCache.txt z folderu głównego kompilacji w edytorze.View Cache opens the CMakeCache.txt file from the build root folder in the editor. (Wszelkie zmiany wprowadzone w tym miejscu CMakeCache.txt są czyszczone w przypadku oczyszczenia pamięci podręcznej.(Any edits you make here to CMakeCache.txt are wiped out if you clean the cache. Aby wprowadzić zmiany, które są utrwalane po wyczyszczeniu pamięci podręcznej, zobacz Dostosowywanie ustawień CMAKE.)To make changes that persist after the cache is cleaned, see Customize CMake settings.)

  • Otwórz folder pamięci podręcznej powoduje otwarcie okna Eksploratora w folderze głównym kompilacji.Open Cache Folder opens an Explorer window to the build root folder.

  • Czyszczenie pamięci podręcznej powoduje usunięcie głównego folderu kompilacji, dzięki czemu następny krok CMAKE Konfiguruj rozpocznie się z czystej pamięci podręcznej.Clean Cache deletes the build root folder so that the next CMake configure step starts from a clean cache.

  • Generuj pamięć podręczną wymusza, aby krok generowania był uruchamiany nawet wtedy, gdy program Visual Studio uzna, że to środowisko jest aktualne.Generate Cache forces the generate step to run even if Visual Studio considers the environment up to date.

Automatyczne generowanie pamięci podręcznej można wyłączyć w oknie narzędzia > opcje > CMake > ogólne .Automatic cache generation can be disabled in the Tools > Options > CMake > General dialog.

Kompilacja pojedynczego plikuSingle file compilation

Aby skompilować pojedynczy plik w projekcie CMake, kliknij prawym przyciskiem myszy plik w Eksplorator rozwiązań.To build a single file in a CMake project, right-click on the file in Solution Explorer. Wybierz opcję Kompiluj z menu podręcznego.Choose Compile from the pop-up menu. Możesz również skompilować aktualnie otwarty plik w edytorze przy użyciu głównego menu CMAKE :You can also build the currently open file in the editor by using the main CMake menu:

Kompilacja pojedynczego pliku CMake

Uruchom CMake z wiersza poleceniaRun CMake from the command line

Jeśli zainstalowano CMake z Instalator programu Visual Studio, można uruchomić je z poziomu wiersza polecenia, wykonując następujące czynności:If you have installed CMake from the Visual Studio Installer, you can run it from the command line by following these steps:

  1. Uruchom odpowiednie vsdevcmd.bat (x86/x64).Run the appropriate vsdevcmd.bat (x86/x64). Aby uzyskać więcej informacji, zobacz Kompilowanie w wierszu polecenia .For more information, see Building on the command line .

  2. Przejdź do folderu wyjściowego.Switch to your output folder.

  3. Uruchom CMake, aby skompilować/skonfigurować aplikację.Run CMake to build/configure your app.

W programie Visual Studio 2015 użytkownicy programu Visual Studio mogą używać generatora CMAKE do generowania plików projektu MSBuild, które następnie wykorzystuje środowisko IDE do IntelliSense, przeglądania i kompilowania.In Visual Studio 2015, Visual Studio users can use a CMake generator to generate MSBuild project files, which the IDE then consumes for IntelliSense, browsing, and compilation.

Zobacz teżSee also

Samouczek: Tworzenie projektów dla wielu platform C++ w programie Visual StudioTutorial: Create C++ cross-platform projects in Visual Studio
Konfigurowanie projektu CMake systemu LinuxConfigure a Linux CMake project
Nawiązywanie połączenia ze zdalnym komputerem z systemem LinuxConnect to your remote Linux computer
Dostosuj ustawienia kompilacji CMakeCustomize CMake build settings
CMakeSettings.jsodwołania do schematuCMakeSettings.json schema reference
Konfigurowanie sesji debugowania CMakeConfigure CMake debugging sessions
Wdrażanie, uruchamianie i debugowanie projektu systemu LinuxDeploy, run, and debug your Linux project
CMake wstępnie zdefiniowanej konfiguracjiCMake predefined configuration reference