在程序中包含 SDL 使其没有输出并立即退出
Including SDL in program makes it have no output and instantly quit
我正在尝试使用 SDL2.0 制作一个程序,但该程序没有显示任何输出并立即退出。
我正在使用 Windows 10 x64,我正在 VSCode 上执行此操作,最新的 CMake 版本。
我实际上尝试了 amd64
、amd64_x86
、x86
、x86_amd64
工具链,同样的事情发生了。
一个普通的 hello world 程序运行良好,但在导入时 SDL.h 它什么也做不了,没有输出和延迟。
C++ 程序 (main.py):
#include "SDL.h"
#include <stdio.h>
int main( int argc, char* args[] )
{
printf("Hi\n");
SDL_Init(SDL_INIT_VIDEO);
SDL_Delay(5 * 1000);
SDL_Quit();
return 0;
}
调试日志时指出“MuserSDL.exe”已退出,代码为 -1073741515 (0xc0000135)。
CMake 文件:
cmake_minimum_required(VERSION 3.0.0)
project(MuserSDL VERSION 0.1.0)
include(CTest)
enable_testing()
include_directories(sdl/include)
link_directories(sdl/lib/x64)
message(${PROJECT_SOURCE_DIR})
add_executable(MuserSDL src/main.cpp)
target_link_libraries(MuserSDL SDL2 SDL2main)
target_include_directories(MuserSDL PUBLIC sdl/include)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
tree /a /f
打印的树(缩小)
C:.
| .gitignore
| CMakeLists.txt
| LICENSE
| README.md
|
+---.vscode
| settings.json
|
+---build (...)
|
+---sdl
| | BUGS.txt
| | ...
| |
| +---docs (...)
| |
| +---include
| | begin_code.h
| | close_code.h
| | SDL.h
| | ...
| |
| \---lib
| +---x64
| | SDL2.dll
| | SDL2.lib
| | SDL2main.lib
| | SDL2test.lib
| |
| \---x86 (...)
|
\---src
main.cpp
找到解决方案 here。我应该复制目标可执行目录下的sdl库。
我正在尝试使用 SDL2.0 制作一个程序,但该程序没有显示任何输出并立即退出。
我正在使用 Windows 10 x64,我正在 VSCode 上执行此操作,最新的 CMake 版本。
我实际上尝试了 amd64
、amd64_x86
、x86
、x86_amd64
工具链,同样的事情发生了。
一个普通的 hello world 程序运行良好,但在导入时 SDL.h 它什么也做不了,没有输出和延迟。
C++ 程序 (main.py):
#include "SDL.h"
#include <stdio.h>
int main( int argc, char* args[] )
{
printf("Hi\n");
SDL_Init(SDL_INIT_VIDEO);
SDL_Delay(5 * 1000);
SDL_Quit();
return 0;
}
调试日志时指出“MuserSDL.exe”已退出,代码为 -1073741515 (0xc0000135)。 CMake 文件:
cmake_minimum_required(VERSION 3.0.0)
project(MuserSDL VERSION 0.1.0)
include(CTest)
enable_testing()
include_directories(sdl/include)
link_directories(sdl/lib/x64)
message(${PROJECT_SOURCE_DIR})
add_executable(MuserSDL src/main.cpp)
target_link_libraries(MuserSDL SDL2 SDL2main)
target_include_directories(MuserSDL PUBLIC sdl/include)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
tree /a /f
打印的树(缩小)
C:.
| .gitignore
| CMakeLists.txt
| LICENSE
| README.md
|
+---.vscode
| settings.json
|
+---build (...)
|
+---sdl
| | BUGS.txt
| | ...
| |
| +---docs (...)
| |
| +---include
| | begin_code.h
| | close_code.h
| | SDL.h
| | ...
| |
| \---lib
| +---x64
| | SDL2.dll
| | SDL2.lib
| | SDL2main.lib
| | SDL2test.lib
| |
| \---x86 (...)
|
\---src
main.cpp
找到解决方案 here。我应该复制目标可执行目录下的sdl库。