c++ - 如何配置 Clion 以使用 SDL2?

标签 c++ c++11 sdl 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)

这是我的“main.cpp”

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

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

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

这是Clion控制台的错误

enter image description here

Error

最佳答案

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

并且您必须将文件“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;
}

关于c++ - 如何配置 Clion 以使用 SDL2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42424672/

相关文章:

c++ - 调用SDL_CreateTextureFromSurface时SDL崩溃

c++ - std::chrono::duration 类型的 volatile 对象

c++ - 由于某种原因正在更改变量

c++ - 为什么 sys socket recv 函数不填充数据而是返回字节长度?

c++ - 这个可变参数模板示例有什么问题?

c++ - 在编译期间初始化 static const std::map?

c++ - 带有 OpenGL (freeglut) 的 SDL 在调用 glutBitmapCharacter 时崩溃

c++ - 基类无法按预期访问 protected 成员

c++ - 如何简单地序列化复杂结构并在 Qt 中通过网络发送它们

c++ - 如何从 MAC 中的/Library/Framework 文件夹中包含 C++ 中的文件