无法使用CMake在Windows上执行简单的“SDL2HelloWorld”

1aaf6o9v  于 2022-12-13  发布在  Windows
关注(0)|答案(1)|浏览(132)

我不明白为什么当我运行程序时什么都没有发生(没有窗口或cout):

.\源文件\主文件.cpp:

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

#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480

int main(int argc, char* args[]) {
  std::cout << "Le programme se lance"; // should at least show
  SDL_Window* window = NULL;
  SDL_Surface* screenSurface = NULL;
  if (SDL_Init(SDL_INIT_VIDEO) < 0) {
    std::cout << "could not initialize sdl2 :" << SDL_GetError() << std::endl;
    return 1;
  }
  window = SDL_CreateWindow(
                "hello_sdl2",
                SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
                SCREEN_WIDTH, SCREEN_HEIGHT,
                SDL_WINDOW_SHOWN
                );
  if (window == NULL) {
    std::cout << "could not create window:" << SDL_GetError() << std::endl;
    return 1;
  }
  screenSurface = SDL_GetWindowSurface(window);
  SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF));
  SDL_UpdateWindowSurface(window);
  SDL_Delay(10000);
  SDL_DestroyWindow(window);
  SDL_Quit();
  return 0;
}

.\CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.25.1)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
project("Test")
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")

set(SDL2_DIR "${SRC_DIR}/lib/cmake/SDL2")

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

add_executable(MAIN "${SRC_DIR}/src/main.cpp")
target_link_libraries(MAIN ${SDL2_LIBRARIES})

我的项目的体系结构如下:

所有文件均来自资产SDL2-devel-2.26.1-mingw.zip

我按顺序使用的命令:

cd .\build\
cmake .. -G "MinGW Makefiles"
make
.\MAIN.exe

make和.\Main.exe结果:

whlutmcx

whlutmcx1#

事实上,我只需要将SDL2.dll复制到build文件夹中即可。

相关问题