如何配置 Clion 以使用 SDL2?

Sup*_*d89 3 c++ sdl c++11 sdl-2 clion

我只是想学习如何在 Clion(Jetbrains IDE)中使用 SDL,我在编辑 CMakeLists.txt 的帖子中找到了答案,我做到了!!但它没有用。

我可以使用这些库,但我无法编译它,在图像中您可以在输出控制台中看到错误。

有人可以帮我配置它吗?

这是我的“CMakeLists.txt”

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)
Run Code Online (Sandbox Code Playgroud)

这是我的“main.cpp”

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

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

PS:这是我写的代码,只是为了测试编译。

这是 Clion 控制台中的错误

在此处输入图片说明

错误

Sup*_*d89 6

“CMakeLists.txt”的正确文本是:

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)
Run Code Online (Sandbox Code Playgroud)

并且您必须将文件“SDL2.dll”(位于 \bin 中)复制到“cmake-build-debug”文件夹。这是一个例子https://gyazo.com/fae7ab9ccc73e3a66e9d9c2d3419ff1e

PS:不要忘记“include”和“lib”文件夹

这是一个示例代码,只是为了测试它。

#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;
}
Run Code Online (Sandbox Code Playgroud)