首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置Clion以使用SDL2?

如何配置Clion以使用SDL2?
EN

Stack Overflow用户
提问于 2017-02-23 19:37:55
回答 4查看 9.1K关注 0票数 4

我只是想学习如何在克利恩( Jetbrains )中使用SDL,我在一篇文章中找到了一个编辑我的CMakeLists.txt的答案,我做到了!!但没起作用。

我可以使用库,但我不能编译它,在图像中,您可以看到输出控制台中的错误。

有人能帮我配置一下吗?

这是我的CMakeLists.txt

代码语言:javascript
复制
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“

代码语言:javascript
复制
#include <iostream>
#include <SDL.h>

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

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

这是Clion控制台中的错误。

错误

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-24 14:59:49

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

代码语言:javascript
复制
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中)复制到”“文件夹中。下面是一个示例https://gyazo.com/fae7ab9ccc73e3a66e9d9c2d3419ff1e

PS:不要忘记“包括”和“库”文件夹。

这是一个测试它的示例代码。

代码语言:javascript
复制
#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;
}
票数 6
EN

Stack Overflow用户

发布于 2017-02-23 20:12:48

我不能评论,但我认为您应该在每个链接lib:target_link_libraries(OpenGLTest SDL2main SDL2 SDL2_test)之前删除target_link_libraries(OpenGLTest SDL2main SDL2 SDL2_test)

(所述错误消息无法找到正确标志应为-llibSDL2main-lSDL2main)

票数 1
EN

Stack Overflow用户

发布于 2018-02-09 01:30:17

  1. 将SDL2.dll (位于x86_64-W64-mingw32\bin中)复制到C:\Windows\System32 32文件夹,作为永久解决方案,然后重新启动操作系统。
  2. 不要忘记在CMakeLists.txt中添加以下内容
代码语言:javascript
复制
- set(CMAKE\_CXX\_FLAGS "${CMAKE\_CXX\_FLAGS} -std=c++11 -lmingw32") set(CMAKE\_EXE\_LINKER\_FLAGS "-static-libgcc -static-libstdc++")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42424672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档