首頁 >後端開發 >C++ >如何在基於 CMake 的專案中包含 SDL2 標頭?

如何在基於 CMake 的專案中包含 SDL2 標頭?

Barbara Streisand
Barbara Streisand原創
2024-11-02 22:13:02742瀏覽

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

在CMake 為基礎的專案中包含SDL2 標頭

此問題解決了包含SDL2 標頭的問題(#include "SDL. h")在CLion 中建立SDL2 專案時使用CMake.

解決方案

提供的解決方案針對不同作業系統提供了兩種方法:

Linux

對於Linux,使用最新的CMake 版本(例如3.7)就足夠了。 CMake 的內置find_package 功能可以定位並包含SDL2 標頭和庫:

<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

對於Windows,請按照以下步驟操作:

  1. 下載SDL2開發包。
  2. 解壓縮到
  3. 在解壓縮的目錄中建立檔案sdl-config.cmake,內容如下:
<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. 在CMake-GUI 應用程式中,設定將SDL2_DIR 變數加入到提取的SDL2 目錄中。
  2. 重新配置CMake。

完成這些步驟後,您可以使用 #include "SDL.h" 包含 SDL2 標頭。

以上是如何在基於 CMake 的專案中包含 SDL2 標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn