为 clion 配置 SFML (windows)

configure SFML for clion (windows)

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

我有:

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

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

link_directories("C:/Path_To_Library")

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

我已经在 Ubuntu 16.04 上用 CLion 成功配置了 SFML,我认为 [=55] 也是一样的=] 用户也。

我的项目名称是 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. 中的以下代码行
  7. 完成!!!..编码愉快

我的修复是,我必须在 FindSFML.cmake

中更改 SFML 的根路径

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