Сносите к чертям все свои установленные GCC, MinGW, MSYS2, SDL2 и т.п.
Заново ставите MSYS2.
Открываете его консоль. Там несколько ярлыков, выбираете со словом UCRT64 в названии.
В консоли должно быть фиолетовыми буквами написано UCRT64
(не MSYS
). Если там не тот текст, то значит ошиблись ярлыком.
Обновляетесь командой pacman -Syuu
. В какой-то момент консоль может закрыться - тогда нужно перезапустить и повторить ту же команду заново, это нормально.
Ставите компилятор, SDL2, и еще всякие полезные штуки: pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-gdb mingw-w64-ucrt-x86_64-pkgconf mingw-w64-ucrt-x86_64-SDL2
.
Запускаете команду pkg-config --libs --cflags sdl2
, чтобы узнать правильные флаги компилятора для SDL2.
Пробуете скомпилировать вашу прогармму с этими флагами: g++ my_program.cpp флаги_из_pkgconfig
.
Если все успешно, добавляете в PATH путь C:\msys64\ucrt64\bin
(туда ставится g++.exe
), и копируете те же самые флаги в VSC.