【问题标题】:configure SFML for clion (windows)为 clion 配置 SFML(Windows)
【发布时间】:2017-04-07 23:27:21
【问题描述】:

我正在我的 Windows 计算机上为学校项目设置工作环境。我们将使用 c++ 和 CLion 制作一个基本游戏。要制作游戏,我需要使用 SFML 库。我已经学习了一些教程,但我似乎无法让它工作。

我有:

  • 下载 CLion 并使用 MinGW 进行配置
  • 已下载 SFML 并将其“findSFML.cmake”文件复制到我的项目中名为 cmake_modules 的新目录中。
  • 编辑了我的 CMakeLists.txt 文件,如下所示:
cmake_minimum_required(VERSION 3.6)
project(testet)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)

add_executable(testet ${SOURCE_FILES})
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
find_package(SFML REQUIRED system window graphics network audio)
if (SFML_FOUND)
    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(testet ${SFML_LIBRARIES})
endif()

这是我在每个教程/答案中看到的三个步骤。但无论如何我都会收到以下错误:

"C:\Program Files (x86)\JetBrains\CLion 2016.3\bin\cmake\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\Users\Benjamin\ClionProjects\testet
CMake Error at cmake_modules/FindSFML.cmake:355 (message):
Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
SFML_GRAPHICS_LIBRARY SFML_NETWORK_LIBRARY SFML_AUDIO_LIBRARY)
Call Stack (most recent call first):
CMakeLists.txt:10 (find_package)

所以它找不到 SFML?但是“findSFML.cmake”不应该解决这个问题吗?任何帮助表示赞赏...谢谢! :D

【问题讨论】:

    标签: c++ cmake sfml clion


    【解决方案1】:

    我相信您错过了link_directories() 电话。你可以这样使用它:

    link_directories("C:/Path_To_Library")
    

    这应该有助于解决您的问题。

    【讨论】:

    • 感谢该路径应该是 SFML 文件夹的路径?
    • 是的,我必须在我正在测试的项目中添加这个。我在linux上,但它是相同的概念:link_directories(/opt/dtSearchLinux/bin64)
    • hmmmm,我添加了 link_directories("C:/Users/MyName/Desktop/SFML-2.4.1/bin") 到我的 CMakesLists.txt 但我仍然得到同样的错误......跨度>
    • 嗯,好的。这个问题/答案可能会引导您朝着正确的方向前进。 stackoverflow.com/questions/20227010/…
    • 谢谢,那个人也有类似的问题,而且你给的小费也没有那么远。我只需要在 FindSFML.cmake 文件中添加我的 sfml 库的路径。
    【解决方案2】:

    我已经在 Ubuntu 16.04 上成功配置了 SFML 和 CLion,我认为对于 Window 用户来说也是如此。

    我的项目名称是 SFML_TEST,因此请使用您的项目名称更改每次出现的 SFML_TEST。

    1. 创建一个新的 Clion C++ 项目。
    2. 导航到 /path/to/CLionProjects/[Project_Name]/CMakeLists.txt
    3. 在下面的语句之后

      add_executable(SFML_TEST ${SOURCE_FILES})
      

      添加以下代码行

      set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
      find_package(SFML REQUIRED system window graphics network audio)
      if (SFML_FOUND)
      include_directories(${SFML_INCLUDE_DIR})
      target_link_libraries(SFML_TEST ${SFML_LIBRARIES})
      endif()
      
    4. 新建目录/path/to/CLionProjects/[project_name]/cmake_modules/FindSFML.cmake

    5. 在 FindSFML.cmake 文件中粘贴给定文件 https://github.com/SFML/SFML/blob/master/cmake/Modules/FindSFML.cmake 中的以下代码行
    6. 完成!!!..快乐编码

    【讨论】:

      【解决方案3】:

      我的解决方法是,我必须在 FindSFML.cmake 中更改 SFML 的根路径

      所以在 cmets 块之后只需 set(SFML_ROOT Z://your_project) 就可以开始了

      【讨论】:

        猜你喜欢
        • 2015-03-30
        • 2021-07-25
        • 1970-01-01
        • 2015-10-19
        • 2017-03-19
        • 2015-07-25
        • 2016-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多