Heim >Backend-Entwicklung >C++ >Wie behebe ich einen undefinierten Referenzfehler bei der Verwendung von SDL2 und SDL_image mit CMake?

Wie behebe ich einen undefinierten Referenzfehler bei der Verwendung von SDL2 und SDL_image mit CMake?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 19:46:02827Durchsuche

How to Solve Undefined Reference Error When Using SDL2 and SDL_image with CMake?

So verwenden Sie SDL2 und SDL_image mit CMake (behobene Fehler)

In diesem Leitfaden bieten wir eine Lösung für das aufgetretene Problem beim Versuch, SDL2 und SDL_image mit CMake zu verwenden.

Ursprüngliches Problem:

Beim Versuch, ein C-Programm mit SDL2 und SDL_image mit CMake zu kompilieren, ein undefinierter Verweis auf IMG_LoadTexture wurde festgestellt.

Verbesserte Lösung:

Um dieses Problem zu beheben, können wir die CMakeLists.txt wie folgt ändern:

<code class="cmake">project(shooter-cmake2)

cmake_minimum_required(VERSION 2.8)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

add_executable(${PROJECT_NAME} src/test.cpp)

INCLUDE(FindPkgConfig)

PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2)
PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)

INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES})</code>

Erklärung:

  • Wir verwenden FindPkgConfig, um die entsprechenden Systembibliotheken zu finden und zu verwenden.
  • PKG_SEARCH_MODULE wird verwendet, um nach SDL2 und SDL2_image zu suchen und deren Include-Pfade und Bibliotheken zu konfigurieren.
  • Beachten Sie, dass der Name-Wert in /usr/lib/x86_64-linux-gnu/pkgconfig/SDL2_image.pc mit dem dritten Parameter PKG_SEARCH_MODULE für diese Bibliothek übereinstimmt.

Implementierung dieser Änderungen sollte das Verknüpfungsproblem beheben und es dem Programm ermöglichen, SDL2 und SDL_image erfolgreich zu verwenden.

Das obige ist der detaillierte Inhalt vonWie behebe ich einen undefinierten Referenzfehler bei der Verwendung von SDL2 und SDL_image mit CMake?. 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