Я пытаюсь собрать проект с помощью AdaSDL2, но я не знаю, что делаю (не боюсь признаться в этом). Есть много ответов на вопросы о SO и других местах, которые решают подобные проблемы, но не исправляют мои проблемы.Как связать библиотеку AdaSDL2
В принципе, я не могу получить ссылку на ссылку. Это первый раз, когда я пытался связать привязку. Я использую GPS 2014. У меня появилось множество ошибок, связанных с различными решениями, которые я видел в Интернете.
Вот мой .gpr:
project Test is
for Source_Dirs use ("./**", "..\AdaSDL2-master");
for Source_Files use ("engine.adb", "engine.ads", "lists.adb", "lists.ads", "sdl-image.adb", "sdl-image.ads", "sdl-mixer.adb", "sdl-mixer.ads", "sdl-ttf.adb", "sdl-ttf.ads", "sdl.adb", "sdl.ads", "window.adb");
for Main use ("window.adb");
end Test;
Вот мой исходный файл window.adb:
with sdl; use sdl;
with Ada.Text_IO;
with Interfaces.C; use Interfaces.C;
procedure Window is
begin
if (SDL_Init((SDL_INIT_VIDEO)) < 0) then
Ada.Text_IO.Put_Line("Could not initialize video!");
end if;
end Window;
Есть и другие исходные файлы, но они даже не использовали прямо сейчас, потому что я m просто пытается получить тривиальный выше файл для правильной связи.
Когда он пытается связать это дает мне несколько неопределенной ссылку ошибки:
*mypath*\sdl.o:sdl.adb:(.text+0x21b3): undefined reference to `SDL_RWFromFile'
*mypath*\sdl.o:sdl.adb:(.text+0x21c3): undefined reference to `SDL_LoadBMP_RW'
*mypath*\sdl.o:sdl.adb:(.text+0x225d): undefined reference to `SDL_RWFromFile'
*mypath*\sdl.o:sdl.adb:(.text+0x2274): undefined reference to `SDL_SaveBMP_RW'
*mypath*\sdl.o:sdl.adb:(.text+0x24cf): undefined reference to `SDL_EventState'
*mypath*\sdl.o:sdl.adb:(.text+0x264b): undefined reference to `SDL_RWFromFile'
*mypath*\sdl.o:sdl.adb:(.text+0x2670): undefined reference to `SDL_LoadWAV_RW'
c:/gnat/2014/bin/../libexec/gcc/i686-pc-mingw32/4.7.4/ld.exe: *mypath*\sdl.o: bad reloc address 0x1140 in section `.rdata'
c:/gnat/2014/bin/../libexec/gcc/i686-pc-mingw32/4.7.4/ld.exe: final link failed: Invalid operation
Я знаю, что это глупый вопрос, но я не имею никакой удачи найти ответ через Google или SO поиск. Я уверен, что это связано с моими настройками проекта (gpr) или тем, как я пытаюсь запустить gnatmake, но я никуда не ухожу. Я не знаю, нужно ли мне каким-либо образом ссылаться на сам файл sdl2.dll, но я попытался сделать это по-разному, и самая распространенная ошибка, которую он мне дает, заключается в том, что он не распознает формат файла.
Может ли кто-нибудь помочь пролить свет на это? Благодарю.
После попытки обоих из них, я думаю, это может быть вопрос о том, как скомпилирована dll, поскольку она говорит, что формат не распознается. Я могу попытаться перекомпилировать его из источника. – Devsman