【问题标题】:SFML 2.5+ and CMakeSFML 2.5+ 和 CMake
【发布时间】:2021-02-16 09:46:46
【问题描述】:

在 SFML 2.5 中删除了FindSFML.cmake,导入它的首选方式是什么?

我试过了,但找不到SFMLConfig.cmake

cmake_minimum_required(VERSION 3.17)
project(untitled)

set(CMAKE_CXX_STANDARD 20)

find_package(SFML 2.5.1 COMPONENTS graphics REQUIRED)
add_executable(untitled "main.cpp")
target_link_libraries(untitled sfml-graphics)

SFML 目录位于项目内。我在 macOS Catalina 上使用 CMake 和 CLion

【问题讨论】:

    标签: cmake sfml


    【解决方案1】:

    我还在项目目录中使用 clion 和 SFML,这就是我通常在做的事情:

    if(WIN32)
        set(LIB_DIR libraries/win)
        set(SHRD_EXT dll)
    else()
        set(LIB_DIR libraries/unix)
        set(SHRD_EXT so)
    endif(WIN32)
    
    # find SFML 2.5
    set(SFML_DIR ${LIB_DIR}/SFML-2.5.1/lib/cmake/SFML/)
    find_package(SFML 2.5 COMPONENTS graphics window system audio network REQUIRED)```
    

    libraries/winlibraries/unix 中,我有特定于平台的 sfml 库。

    【讨论】:

      【解决方案2】:

      我在 windows 和 linux 上都使用 sfml,这取决于我在什么设备上

      我的样板 CMakeLists.txt 如下所示:

      cmake_minimum_required(VERSION 3.16)
      
      project(AppName)
      
      # Windows specific config
      IF (WIN32)
          # Include local sfml cmake config
          set(SFML_DIR "C:/lib/SFML-2.5.1/lib/cmake/SFML")
          # Link sfml statically (Optional)
          set(SFML_STATIC_LIBRARIES TRUE)
      ENDIF()
      
      find_package(SFML 2.5.1 COMPONENTS graphics audio REQUIRED)
      
      FILE(
          GLOB
          SOURCES
          "src/*.cpp"
      )
      
      add_executable(AppName ${SOURCES})
      
      target_link_libraries(AppName sfml-graphics sfml-audio)
      
      target_include_directories(AppName
          PRIVATE
          "${PROJECT_BINARY_DIR}"
          "${CMAKE_CURRENT_SOURCE_DIR}/include"
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-09
        • 2021-11-14
        • 2019-04-10
        • 2015-03-30
        • 2018-03-05
        • 2015-10-19
        • 2022-09-27
        • 2020-06-19
        相关资源
        最近更新 更多