我正在尝试将SDL2添加到我的CLion项目中。我找到了这个guide,并试图仅包含SDL2而遵循它。一切都能编译,但是当我启动我的应用程序时,我得到“处理结束,退出代码为-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
答案 0 :(得分:0)
我的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)
答案 1 :(得分:0)
如果您在CLion中使用Visual Studio工具链:
您需要将文件cmake-build-debug
粘贴到文件夹cmake-build-release
或.dll
中,但不仅要粘贴SDL2_image.dll
,还要粘贴文件夹lib/x86
中的所有文件