Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan Ralat Rujukan Tidak Ditakrifkan Apabila Menggunakan SDL2 dan SDL_image dengan CMake?

Bagaimana untuk Menyelesaikan Ralat Rujukan Tidak Ditakrifkan Apabila Menggunakan SDL2 dan SDL_image dengan CMake?

Susan Sarandon
Susan Sarandonasal
2024-11-05 19:46:02830semak imbas

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

Cara Menggunakan SDL2 dan SDL_image dengan CMake (Ralat Selesai)

Dalam panduan ini, kami akan menyediakan penyelesaian untuk isu yang dihadapi apabila cuba menggunakan SDL2 dan SDL_image dengan CMake.

Asal Masalah:

Apabila cuba menyusun atur cara C menggunakan SDL2 dan SDL_image dengan CMake, rujukan yang tidak ditentukan kepada IMG_LoadTexture ditemui.

Penyelesaian yang Diperbaiki:

Untuk menangani isu ini, kami boleh mengubah suai CMakeLists.txt sebagai berikut:

<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>

Penjelasan:

  • Kami menggunakan FindPkgConfig untuk mencari dan menggunakan perpustakaan sistem yang sesuai.
  • PKG_SEARCH_MODULE digunakan untuk cari SDL2 dan SDL2_image dan konfigurasikan laluan termasuk dan perpustakaan.
  • Perhatikan bahawa nilai Nama dalam /usr/lib/x86_64-linux-gnu/pkgconfig/SDL2_image.pc sepadan dengan parameter ketiga kepada PKG_SEARCH_MODULE untuk perpustakaan ini.

Melaksanakan perubahan ini harus menyelesaikan isu pemautan dan membenarkan program menggunakan SDL2 dan SDL_image berjaya.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Rujukan Tidak Ditakrifkan Apabila Menggunakan SDL2 dan SDL_image dengan CMake?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn