Я попытался скомпилировать этот код:
#include "SDL2/SDL.h"
#include <stdio.h>
int main( int argc, char* args[] )
{
SDL_Window *window;
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("SDL2 Window", 100, 100, 640, 480, 0);
if(window==NULL)
{
printf("Could not create window: %s\n", SDL_GetError());
return 1;
}
SDL_Delay(3000);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
с помощью этой команды g++ -o out/test.exe main.c -lmingw32 -lSDL2main -lSDL2
в Windows PowerShell с установленным MinGW 64bit с добавлением C:\MinGW\bin
в PATH
Сначала у меня были некоторые ошибкипрежде чем я понял, что я собираю 32-битный двоичный файл и предоставил 32-битный SDL2.dll
файл в директории ./out
.После этого все заработало отлично.Он создал пустое маленькое окно, немного подождал и закончил сам.
Но я просто не могу понять, как скомпилировать его для 64-битной SDL2.dll
Я предполагаю, что после распаковкиархив sdl в папку SDL2-2.0.9-MinGW32
64-битный SDL2.dll
расположен в SDL2-2.0.9-MinGW32\x86_64-w64-mingw32\bin
и 32-битный SDL2.dll
расположен в SDL2-2.0.9-MinGW32\i686-w64-mingw32\bin
Я также пробовалудаление опции -lmingw32
, но это не привело к ошибкам WinMain (что сбивает с толку, я думал, что это была работа -lSDL2main
)
Когда я пытался -m64
, это приводило к ошибке 64-битного режима в строке с #include "SDL2/SDL.h"
Пожалуйста, помогите