2017-02-23 3 views
2

Ich versuche nur zu lernen, wie SDL in Clion (die Jetbrains IDE) zu verwenden, ich fand eine Antwort in einem Beitrag meine CMakeLists.txt zu bearbeiten, ich habe es getan !! aber es hat nicht funktioniert.Wie konfiguriere ich Clion für die Arbeit mit SDL2?

Ich kann die Bibliotheken verwenden, aber ich kann es nicht kompilieren, in dem Bild können Sie den Fehler in der Ausgabekonsole sehen.

Kann jemand mir helfen, sie zu konfigurieren, benutzen Sie bitte

Das ist mein "CMakeLists.txt" ist

cmake_minimum_required(VERSION 3.6) 
project(OpenGLTest) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32") 
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") 

include_directories(${PROJECT_SOURCE_DIR}/include) 
link_directories(${PROJECT_SOURCE_DIR}/lib) 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGLTest ${SOURCE_FILES}) 

target_link_libraries(OpenGLTest libSDL2main libSDL2 libSDL2_test) 

Und das ist mein "main.cpp"

#include <iostream> 
#include <SDL.h> 

int main() { 
    SDL_Init(SDL_INIT_EVERYTHING); 
    std::cout << "Hello, World!" << std::endl; 
    return 0; 
} 

PS: Dies ist der Code, den ich geschrieben habe, nur um das Kompilieren zu testen.

Dies ist der Fehler in Clion Konsole

enter image description here

Error

+0

Welche Fehlermeldung haben Sie bekommen? –

+0

https://i.stack.imgur.com/Szil0.png dies ist die Ausgabekonsole – SupineDread89

+0

und hier können Sie meine Dateien und Bibliotheken https://i.stack.imgur.com/IiE8X.png sehen – SupineDread89

Antwort

4

Der korrekte Text von "CMakeLists.txt" ist:

cmake_minimum_required(VERSION 3.6) 
project(OpenGLTest) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32") 
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") 

include_directories(${PROJECT_SOURCE_DIR}/include) 
link_directories(${PROJECT_SOURCE_DIR}/lib) 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGLTest ${SOURCE_FILES}) 

target_link_libraries(OpenGLTest mingw32 SDL2main SDL2) 

Und Sie haben die Datei "SDL2.dll" kopieren (in \ ist) auf "cmake-build-debug" -Ordner. Hier ist ein Beispiel https://gyazo.com/fae7ab9ccc73e3a66e9d9c2d3419ff1e

PS: Nicht vergessen die „include“ und „lib“ Ordner

Dies ist ein Beispiel-Code nur um es zu testen.

#include <iostream> 
#include <SDL.h> 

int main(int argc, char* argv []) { 
    if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { 
     std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; 
     return 1; 
    } 
    std::cout << "Hello, World!" << std::endl; 
    SDL_Quit(); 
    return 0; 
} 
1

ich nicht kommentieren kann, aber ich denke, Sie sollten die lib vor jedem Link lib entfernen: target_link_libraries(OpenGLTest SDL2main SDL2 SDL2_test)

(die Fehlermeldung besagt, dass -llibSDL2main nicht gefunden werden kann, die das richtige Flag sein sollte -lSDL2main)

+0

Sorry dude, es hat nicht funktioniert: c – SupineDread89

+0

Was ist die Fehlermeldung diesmal?Ich denke du brauchst 'SDL2_test' nicht und bring 'mingw32' runter: target_link_libraries (OpenGLTest mingw32 SDL2main SDL2)' – tntxtnt

+0

ist dies, ich habe mich in target_link_libraries (OpenGLTest mingw32 SDL2main SDL2) geändert https://gyazo.com/06b897f383eed83ddfffe53612d25614 – SupineDread89

0
  1. kopieren SDL2.dll (befindet sich in x86_64-w64-mingw32 \ bin) in den C: \ Windows \ System32 Ordner die dauerhafte Lösung und die dann neu starten Sie das Betriebssystem zu sein.

  2. nicht vergessen, die folgenden in Ihrem CMakeLists.txt

    • Satz (CMAKE_CXX_FLAGS "$ {} CMAKE_CXX_FLAGS -std = C++ 11 -lmingw32") Satz (CMAKE_EXE_LINKER_FLAGS „-static hinzufügen -libgcc -static-libstdC++ ")
Verwandte Themen