为clion配置SFML(窗口)

时间:2016-11-23 20:00:16

标签: c++ cmake sfml clion

我正在为我的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

3 个答案:

答案 0 :(得分:1)

我已在 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. 完成!!! ..快乐编码

答案 1 :(得分:0)

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

link_directories("C:/Path_To_Library")

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

答案 2 :(得分:0)

我的修复是,我必须在FindSFML.cmake中更改SFML的根路径

在评论栏之后只有set(SFML_ROOT Z://your_project)并准备好了