Verwenden von SDL2 und SDL_image mit CMake
In diesem Artikel befassen wir uns mit den Schritten zur Verwendung der SDL2-Grafikbibliothek und der SDL_image-Erweiterung in Ihr C-Projekt mit Hilfe von CMake.
Projekt und Abhängigkeiten konfigurieren
project(shooter-cmake2)
cmake_minimum_required(VERSION 2.8)
set(SOURCES shooter.cpp classes.cpp utils.cpp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c 0x")
add_executable(${PROJECT_NAME} ${SOURCES})
SDL2 und SDL_image finden
Als nächstes sucht CMake nach dem Systempaketmanager und interagiert mit ihm, um SDL2 und zu finden SDL_image. Falls vorhanden, werden die erforderlichen Header- und Bibliothekspfade abgerufen.
INCLUDE(FindPkgConfig)
PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2_image REQUIRED SDL2_image>=2.0.0)
Einschließlich Header und Verknüpfungsbibliotheken
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES})
Verknüpfungsfehler beheben
Beim ursprünglichen Versuch ist der Verknüpfungsfehler aufgrund der falschen aufgetreten Bibliotheksname, der in PKG_SEARCH_MODULE für SDL_image verwendet wird. Der korrekte Name ist SDL2_image>=2.0.0. Darüber hinaus kann die Überprüfung der pkgconfig-Dateien für die Bibliotheken zusätzliche Erkenntnisse zu Konfigurationsproblemen liefern.
Testen der Konfiguration
Um das bereitgestellte Codebeispiel auszuführen, stellen Sie sicher, dass Sie Zugriff darauf haben die LoadTexture-Funktion. Denken Sie daran, dass die genauen Anforderungen und Konfiguration je nach System variieren können.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3