C++ Academy · Lekcja

Generowanie plików IDE i kompilacje wieloplatformowe

Generuj pliki projektów Visual Studio, Xcode i Ninja na potrzeby programowania wieloplatformowego

Lekcja 4 z 414 kroki

Generowanie plików IDE i kompilacje wieloplatformowe to bezpłatna lekcja C++ Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C++ Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C++ Academy zawiera 4 lekcji w sumie.

Generatory

CMake tworzy pliki kompilacji dla wielu backendów. Generator należy wybrać za pomocą -G:

  • "Unix Makefiles"
  • "Ninja"
  • "Visual Studio 17 2022"
  • "Xcode"

Ninja: szybkie kompilacje

Ninja jest zalecanym generatorem do pracy z wierszem poleceń — zapewnia szybkie kompilacje przyrostowe.

cmake -B build -G Ninja
ninja -C build

Generator Visual Studio

Należy wygenerować rozwiązanie Visual Studio, aby edytować kod i debugować go w środowisku IDE.

cmake -B build -G "Visual Studio 17 2022"
# Open build/MyApp.sln in Visual Studio

Generator Xcode

W przypadku programowania na macOS należy wygenerować projekt Xcode.

cmake -B build -G Xcode
open build/MyApp.xcodeproj

Integracja z VS Code

Należy zainstalować rozszerzenie CMake Tools. Uruchamia ono CMake w sposób transparentny i udostępnia polecenia kompilowania, debugowania oraz testowania.

CLion

CLion natywnie korzysta z CMake — plik CMakeLists.txt można otworzyć bezpośrednio. Konfiguracje są zarządzane za pośrednictwem środowiska IDE.

Kompilacja skrośna

Aby kierować kompilację na inny system operacyjny lub procesor, należy użyć pliku toolchain opisującego kompilator skrośny.

cmake -B build -DCMAKE_TOOLCHAIN_FILE=arm-linux.cmake

Przykład pliku toolchain

Prosty plik toolchain dla systemu ARM Linux:

# arm-linux.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

Kod zależny od platformy

Do warunkowego uwzględniania kodu lub celów zależnych od platformy należy używać zmiennych CMake.

if(WIN32)
    target_link_libraries(myapp PRIVATE ws2_32)
elseif(APPLE)
    target_link_libraries(myapp PRIVATE "-framework Foundation")
elseif(UNIX)
    target_link_libraries(myapp PRIVATE pthread)
endif()

Presety CMake

W pliku CMakePresets.json należy definiować typowe konfiguracje, takie jak kompilator, generator i toolchain. Uruchamia się je za pomocą cmake --preset=name.

Konfiguracje kompilacji w generatorach wielokonfiguracyjnych

Visual Studio i Xcode obsługują wiele konfiguracji. Wybierz konfigurację podczas kompilacji za pomocą --config:

cmake --build build --config Release

Integracja z CI

GitHub Actions, GitLab CI i Jenkins obsługują CMake. Aby przyspieszyć działanie, buforuj zależności między kolejnymi uruchomieniami.

Szybkie sprawdzenie

Który generator CMake jest zazwyczaj najszybszy podczas kompilacji z wiersza poleceń?

Podsumowanie

CMake obsługuje wiele generatorów — Ninja zapewnia szybkość, a generatory IDE (Visual Studio, Xcode) ułatwiają programowanie. Do kompilacji skrośnej należy używać plików toolchain, do współdzielenia konfiguracji — presetów, a do kodu zależnego od systemu — gałęzi platformowych.

Bezpłatny start

Ucz się C++ dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
51
Lekcje
203

Często zadawane pytania

Czy lekcja „Generowanie plików IDE i kompilacje wieloplatformowe” jest bezpłatna?

Tak — pełny tekst „Generowanie plików IDE i kompilacje wieloplatformowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C++ Academy, przejdź na CoddyKit PRO. Kurs C++ Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Generowanie plików IDE i kompilacje wieloplatformowe”?

Generuj pliki projektów Visual Studio, Xcode i Ninja na potrzeby programowania wieloplatformowego Ćwiczysz C++ Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć C++ Academy?

Nie wymagamy żadnego doświadczenia. C++ Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Generowanie plików IDE i kompilacje wieloplatformowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji C++ Academy?

Tak. Każda lekcja C++ Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Układ projektu CMake i CMakeLists.txt
  2. Cele, linkowanie i widoczność: PUBLIC, PRIVATE
  3. Używanie vcpkg i Conan do zarządzania zależnościami
  4. Generowanie plików IDE i kompilacje wieloplatformowe
← Powrót do C++ Academy