Как скомпилировать программу c ++ для 64-битной платформы, которая использует SDL2 на 64-битной Mingw - PullRequest
0 голосов
/ 02 января 2019

Я попытался скомпилировать этот код:

#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"


Пожалуйста, помогите

...