CLion、MinGW 和 SDL2:进程已完成,退出代码为 -1073741515 (0xC0000135)

CLion, MinGW and SDL2: Process finished with exit code -1073741515 (0xC0000135)

我正在尝试将 SDL2 添加到我的 CLion 项目中。我找到了这个 guide 并尝试在只包含 SDL2 的情况下遵循它。一切都编译,但当我启动我的应用程序时,我得到 "Process finished with exit code -1073741515 (0xC0000135)".

在我的 CMakeLists.txt 文件中:

cmake_minimum_required(VERSION 3.15)
project(Test)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_CXX_FLAGS "-lmingw32 -static-libgcc -static-libstdc++")
set(SDL2_PATH "C:/CPP/libs/SDL2-2.0.10/x86_64-w64-mingw32")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "C:/CPP/libs/CMakeModules")

find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIR})

if (${SDL2_FOUND})
    message(VERBOSE, "sdl found!")
else ()
    message(FATAL_ERROR, "sdl not found")
endif ()

message(VERBOSE, ${SDL2_INCLUDE_DIR})
message(VERBOSE, ${SDL2_LIBRARY})

add_executable(Test src/main.cpp)
target_link_libraries(Test ${SDL2_LIBRARY})

main.cpp:

#include <SDL.h>
#include <cstdio>

int main(int argc, char *args[]) {

    if (SDL_Init(SDL_INIT_VIDEO) < 0) {
        printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
    }
    SDL_Quit();
    return 0;
}

我正在使用 CLion 2019.3.2 和捆绑的 CMake、最新的 MinGW 版本 (x86_64-8.1.0-win32-seh-rt_v6-rev0) 和最新的 SDL2 (2.0.10)。 CMake 输出看起来也不错:

VERBOSE,sdl found!
VERBOSE,C:/CPP/libs/SDL2-2.0.10/x86_64-w64-mingw32/include/SDL2
VERBOSE,mingw32-mwindowsC:/CPP/libs/SDL2-2.0.10/x86_64-w64-mingw32/lib/libSDL2main.aC:/CPP/libs/SDL2-2.0.10/x86_64-w64-mingw32/lib/libSDL2.dll.a-lpthread

我的 CMakeLists.txt 好像和你的不一样。 以上是我的配置,希望能帮到你。

cmake_minimum_required(VERSION 3.15)
project(cppSDL)

set(CMAKE_CXX_STANDARD 17)

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

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

set(SOURCE_FILES SDLtutorial.cpp)
add_executable(SDLtutorial ${SOURCE_FILES})

target_link_libraries(SDLtutorial SDL2main SDL2 SDL2_ttf SDL2_image)

如果您在 CLion 中使用 visual studio 工具链:

您需要在文件夹 cmake-build-debugcmake-build-release 中粘贴文件 .dll,但不仅仅是 SDL2_image.dll,文件夹 lib/x86[= 中的所有文件16=]

SDL2_image-devel-2.0.5-VC.zip