Я устанавливаю рабочую среду для школьного проекта на моем компьютере с 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")
Это должно помочь решить вашу проблему.
Я успешно настроил SFML с CLion на Ubuntu 16.04 и я думаю, что это будет то же самое для пользователя Windows также.
Мой проект называется 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
я решил, что мне нужно было изменить корневой путь SFML в FindSFML.cmake
так просто set(SFML_ROOT Z://your_project)
после блока комментариев и вы готовы идти