Heim >Backend-Entwicklung >C++ >Wie kann ich SDL2-Header in ein CMake-basiertes Projekt einbinden?

Wie kann ich SDL2-Header in ein CMake-basiertes Projekt einbinden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 22:13:02742Durchsuche

How can I include SDL2 headers in a CMake-based project?

Einbinden von SDL2-Headern in CMake-basierte Projekte

Diese Frage befasst sich mit dem Problem des Einbindens von SDL2-Headern (#include „SDL.h“). beim Erstellen eines SDL2-Projekts in CLion mit CMake.

Lösung

Die bereitgestellte Lösung bietet zwei Ansätze für verschiedene Betriebssysteme:

Linux

Für Linux ist die Verwendung einer aktuellen CMake-Version (z. B. 3.7) ausreichend. Die integrierte find_package-Funktion von CMake kann SDL2-Header und -Bibliotheken finden und einbinden:

<code class="cmake">cmake_minimum_required(VERSION 3.7)
project(SDL2Test)

find_package(SDL2 REQUIRED)
include_directories(SDL2Test ${SDL2_INCLUDE_DIRS})

add_executable(SDL2Test Main.cpp)
target_link_libraries(SDL2Test ${SDL2_LIBRARIES})</code>

Windows

Für Windows befolgen Sie diese Schritte:

  1. Laden Sie das SDL2-Entwicklungspaket herunter.
  2. Extrahieren Sie es an einen ausgewählten Speicherort.
  3. Erstellen Sie die Datei sdl-config.cmake im extrahierten Verzeichnis mit folgendem Inhalt:
<code class="cmake">set(SDL2_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include")

# Support both 32 and 64 bit builds
if (${CMAKE_SIZEOF_VOID_P} MATCHES 8)
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x64/SDL2main.lib")
else ()
  set(SDL2_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2.lib;${CMAKE_CURRENT_LIST_DIR}/lib/x86/SDL2main.lib")
endif ()

string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)</code>
  1. Setzen Sie in der CMake-GUI-Anwendung die Variable SDL2_DIR auf das extrahierte SDL2-Verzeichnis.
  2. Konfigurieren Sie CMake neu.

Nach diesen Schritten können Sie kann SDL2-Header mit #include „SDL.h“ einschließen.

Das obige ist der detaillierte Inhalt vonWie kann ich SDL2-Header in ein CMake-basiertes Projekt einbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn