Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membetulkan Termasuk Tajuk Tidak Sah Apabila Menggunakan SDL2 dengan CMake?

Bagaimana untuk Membetulkan Termasuk Tajuk Tidak Sah Apabila Menggunakan SDL2 dengan CMake?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 15:35:30296semak imbas

How to Fix Invalid Header Includes When Using SDL2 with CMake?

Menggunakan SDL2 dengan CMake: Menangani Pengepala Tidak Sah Termasuk

Apabila menyepadukan SDL2 ke dalam projek menggunakan CLion dan CMake, pembangun mungkin menghadapi kesukaran untuk memasukkan pengepala yang diperlukan kerana resolusi laluan pengepala yang tidak berjaya. Artikel ini bertujuan untuk menangani isu ini dan menyediakan penyelesaian yang komprehensif.

Dalam fail CMakeLists.txt yang disediakan, laluan ke SDL2 termasuk direktori dan pustaka ditetapkan secara eksplisit:

<code class="cmake">set(SDL2_INCLUDE_DIR C:/SDL/SDL2-2.0.3/include)
set(SDL2_LIBRARY C:/SDL/SDL2-2.0.3/lib/x64)</code>

Walau bagaimanapun , pendekatan ini bergantung pada andaian bahawa laluan yang ditentukan adalah betul dan laluan carian pengepala sistem dikonfigurasikan dengan betul.

Untuk menyelesaikan isu ini, kami mengesyorkan menggunakan perintah find_package() yang disediakan oleh CMake. Perintah ini akan mencari perpustakaan SDL2 secara automatik dan menetapkan pembolehubah yang sesuai, termasuk SDL2_INCLUDE_DIRS dan SDL2_LIBRARIES.

Untuk sistem berasaskan Linux dengan versi CMake terkini (mis., 3.7 atau lebih baru), proses ini haruslah mudah:

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

find_package(SDL2 REQUIRED)</code>

Untuk sistem Windows, adalah perlu untuk mencipta fail sdl-config.cmake secara manual dalam direktori pakej pembangunan SDL2 yang diekstrak. Berikut ialah contoh kandungan fail:

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

Setelah mengkonfigurasi projek dalam aplikasi CMake-GUI, pembolehubah SDL2_DIR akan muncul. Ia harus ditetapkan kepada direktori SDL2 yang diekstrak daripada pakej dev. Selepas langkah ini, projek yang dikonfigurasikan semula harus mencari pengepala dan pustaka yang diperlukan dengan betul, membenarkan kemasukan pengepala SDL2 yang lancar menggunakan sintaks biasa:

<code class="c++">#include <iostream>
#include "SDL.h"</code>

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Termasuk Tajuk Tidak Sah Apabila Menggunakan SDL2 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