我正在为我的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
答案 0 :(得分:1)
我已在 Ubuntu 16.04 上成功配置 SFML与CLION ,我认为对于Window用户也是如此。
我的项目名称为 SFML_TEST ,因此请使用您的项目名称更改 SFML_TEST的每次出现。
在以下声明之后
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()
创建新目录/path/to/CLionProjects/[project_name]/cmake_modules/FindSFML.cmake
答案 1 :(得分:0)
我相信你错过了link_directories()
电话。您可以像这样使用它:
link_directories("C:/Path_To_Library")
这应该有助于解决您的问题。
答案 2 :(得分:0)
我的修复是,我必须在FindSFML.cmake中更改SFML的根路径
在评论栏之后只有set(SFML_ROOT Z://your_project)
并准备好了