Недавно я загрузил подсистему Linux в Windows 10 с Ubuntu.
Я могу скомпилировать приложение SDL2 для Linux с помощью команды g++, но всякий раз, когда я пытаюсь сделать это с помощью этой команды i686-w64-mingw32-g++, я получаю сообщение об ошибке main.cpp:5:9: fatal error: SDL2/SDL.h: No such file or directory.
Я использую команду i686-w64-mingw32-g++ main.cpp -w -lSDL2 -o main.exe.
Кто-нибудь знает, как это исправить? :(
[РЕДАКТИРОВАТЬ]
Итак, теперь я попытался указать каталог необходимых файлов с помощью этой команды: g++ main.cpp -I/usr/include/SDL -L/usr/lib/x86_64-linux-gnu -w -Wall -Wextra -std=c++17 -lSDL2 -o main
который работал, но когда я использую его с mingw, он не i686-w64-mingw32-g++ main.cpp -I/usr/include/SDL -L/usr/lib/x86_64-linux-gnu -w -Wall -Wextra -std=c++17 -lSDL2 -o main





Вам необходимо указать путь к каталогу include SDL в командной строке. Однако вам необходимо указать путь к SDL скачано для mingw32, а не / usr / include / SDL2. Разница в том, что заголовки в / usr / include / SDL2 предназначены для Linux, а библиотеки в / usr / lib также предназначены для Linux, но вам необходимо связать их с библиотеками Windows.
Обычно я загружаю библиотеки разработки для Mingw32 и помещаю их прямо в каталог своего проекта. Затем все, что вам нужно сделать, это добавить -ISDL2-2.0.8 / i686-w64-mingw32 / include -LSDL2-2.0.8 / i686-w64-mingw32 / lib в вашу командную строку, и он сможет найти нужные заголовки и библиотеки. Наконец, убедитесь, что вы скопировали SDL2-2.0.8 / i686-w64-mingw32 / bin / SDL2.dll в каталог исполняемых файлов в Makefile.
Также не забудьте связать SDLmain. Он создает для вас WinMain и все такое, а затем вызывает вашу основную функцию.
не надо ли указывать путь к файлам
.h, т.е.-I /path/to/SDL2? Удачи.