2016-11-23 26 views
1

i Einstellung bin eine Arbeitsumgebung für ein Schulprojekt auf meinem Windows-Computer. Wir werden ein grundlegendes Spiel mit C++ und CLion machen. Um ein Spiel zu machen, muss ich die SFML-Bibliothek verwenden. Ich habe ein paar Tutorials gefolgt, aber ich kann es scheinen irgendwie zu erhalten zu arbeiten.configure SFML für Clion (Fenster)

ich habe:

  • Heruntergeladene CLION und konfiguriert es mit MinGW
  • Heruntergeladene SFML und kopiert seine „findSFML.cmake“ Datei in ein neues Verzeichnis in meinem Projekt, das ich cmake_modules nennen.
  • meine CMakeLists.txt Datei bearbeitet, so dass es wie folgt aussieht:
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() 

Dies sind die drei Schritte, die ich auf jeder tutorial/Antwort zu sehen. Aber ich bekomme trotzdem folgenden Fehler:

"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) 

Also kann es die SFML nicht finden? Aber sollte das "findSFML.cmake" das nicht lösen? Jede Hilfe ist dankbar ... Danke! : D

Antwort

0

Ich glaube, Sie link_directories() Aufruf fehlen. Sie können es wie folgt verwenden:

link_directories("C:/Path_To_Library") 

Dies sollte dazu beitragen, Ihr Problem zu lösen.

+0

Dank geht der Weg ist wohl der Pfad zu dem Ordner SFML zu sein? – Bonbin

+0

Ja, ich musste das in meinem Projekt hinzufügen, das ich getestet habe. Ich bin auf Linux, aber es ist das gleiche Konzept: link_directories (/ opt/dtSearchLinux/bin64) – CodeLikeBeaker

+0

hmmmm, ich habe link_directories ("C: /Users/MyName/Desktop/SFML-2.4.1/bin") zu meinen CMakesLists hinzugefügt .txt aber ich bekomme immer noch den gleichen Fehler ... – Bonbin

0

Ich habe SFML erfolgreich konfiguriert mit CLION auf Ubuntu 16.04 und ich denke, es ist auch für Fenster Benutzer gleich sein wird.

Mein Projektname ist SFML_TEST so ändern Sie jedes Auftreten von SFML_TEST mit Ihrem Projektnamen.

  1. Erstellen Sie ein neues Clion C++ - Projekt.
  2. Navigieren Sie zu /path/to/CLionProjects/[Project_Name]/CMakeLists.txt
  3. Nach der folgenden Anweisung

    add_executable(SFML_TEST ${SOURCE_FILES}) 
    

    Fügen Sie die folgenden Zeilen Code

    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. Erstellen Sie ein neues Verzeichnis /path/to/CLionProjects/[project_name]/cmake_modules/FindSFML.cmake

  5. In FindSFML.cmake Datei pa ste die folgende Codezeile aus der angegebenen Datei https://github.com/SFML/SFML/blob/master/cmake/Modules/FindSFML.cmake
  6. Erledigt !!! .. Happy Coding
0

meine fix war, dass ich den Stammpfad von SFML im FindSFML ändern musste.cmake

so nur set(SFML_ROOT Z://your_project) nach dem Block der Kommentare und Sie sind bereit

Verwandte Themen