2016-11-23 118 views
1

我正在爲Windows計算機上的一個學校項目設置一個工作環境。我們將使用C++和CLion製作基本遊戲。爲了製作遊戲,我需要使用SFML庫。我跟着幾個教程,但我似乎無法讓它工作。爲clion配置SFML(windows)

我:

  • 下載克利翁和使用MinGW
  • 下載SFML配置,並在我的項目,我稱之爲cmake_modules複製其「findSFML.cmake」文件到一個新的目錄。
  • 編輯我的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

回答

0

我相信你錯過了link_directories()電話。你可以這樣使用它:

link_directories("C:/Path_To_Library") 

這應該有助於解決你的問題。

+0

感謝路徑假設是路徑SFML文件夾? – Bonbin

+0

是的,我不得不在我測試的項目中添加這個。我在linux上,但它是相同的概念:link_directories(/ opt/dtSearchLinux/bin64) – CodeLikeBeaker

+0

hmmmm,我添加link_directories(「C:/Users/MyName/Desktop/SFML-2.4.1/bin」)到我的CMakesLists .txt但我仍然得到相同的錯誤... – Bonbin

0

我已經成功地在配置SFML與克利翁的Ubuntu 16.04,我認爲這將是同爲窗口的用戶也。

我的項目名稱是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文件中pa從給定文件https://github.com/SFML/SFML/blob/master/cmake/Modules/FindSFML.cmake
  6. 做STE下面的代碼行!!!快樂編碼
0

我修復了,我不得不改變在FindSFML SFML的根路徑。cmake的

所以只是set(SFML_ROOT Z://your_project)的意見段之後,你準備好去