Я пытаюсь связать SDL2 с Raspbian Stretch, основанным на Debian.
Я следовал инструкциям:
Системы на основе Debian (включая Ubuntu) могут просто выполнить «sudo apt-get install libsdl2-2.0», чтобы установить библиотеку для всей системы, а также всевозможные другие полезные зависимости.
Но я понятия не имею, где в мире это установлено и найти. -name **sdl* на самом деле не помогло... тем временем моя команда сборки в gnat по-прежнему говорит мне, что ничего не находит:
gnatmake -g main.adb -Isource -I../source/win -I../source -I../SDL2 -gnatwk -gnatwr -gnatwu -D objectFiles -largs -lSDL2 -lSDL2_Mixer -lSDL2_ttf obj1.o obj2.o
(...)
/usr/bin/ld: cannot find -lSDL2
/usr/bin/ld: cannot find -lSDL2_Mixer
/usr/bin/ld: cannot find -lSDL2_ttf
(...)
Поэтому я попытался построить себя в соответствии с приведенными ниже инструкциями:
Если вы компилируете SDL самостоятельно, вот то, что мы называем "способом сборки Unix":
- Получите копию исходного кода либо из Mercurial, либо из официального архива, либо из любого другого источника.
- Создайте отдельный каталог для сборки (SDL откажется от сборки в базе исходного дерева).
- Запустите скрипт configure, чтобы все настроить.
- Запустите «make», чтобы скомпилировать SDL.
- Запустите «make install», чтобы установить новую сборку SDL в системе.
Это выглядит примерно так:
hg clone https://hg.libsdl.org/SDL SDL cd SDL mkdir build cd build ../configure make sudo make install
Все делало то, что должно было делать (или, по крайней мере, нигде не говорилось, что оно НЕ делало то, что должно было делать), но теперь я до сих пор не знаю, как это связать. Я попытался скопировать файл libsdl2.so в рабочий каталог и изменить -lSDL2 на -llibsdl2, но безуспешно. Очевидно, мне нужно проделать ту же процедуру с другими библиотеками, но я надеялся, что смогу беспокоиться об одной за раз.
Есть дополнительные инструкции, но они, похоже, относятся конкретно к C:
После установки библиотеки вы можете использовать программу sdl2-config, которая поможет вам скомпилировать собственный код:
gcc -o myprogram myprogram.c `sdl2-config --cflags --libs`
И я не знаю, как сделать что-то подобное для Ады.
Проблема в том, что у меня просто нет опыта компоновки в Linux, и все, что я могу найти в Интернете, настолько общее, что я не могу применить его к своему делу.
Что касается того, с какой стати я хотел бы это сделать, создание этого для Raspberry Pi не было чем-то, что я планировал с самого начала проекта, но для меня стало важно иметь возможность сделать это.
Кто-нибудь знает, как я могу заставить это работать? Я могу без проблем собрать его в Windows, так что на самом деле это просто вопрос приведения библиотеки в состояние, в котором она мне подойдет для сборки в Linux.
dpkg -L libsdl2-2.0
должен сказать вам, что он установил. Вероятно, вам также понадобитсяlibsdl2-2.0-dev
. То же самое касается ttf и микшера, это отдельные библиотеки. - person keltar   schedule 14.07.2018