Здравствуйте, я занимаюсь переносом игры из Windows на *nix. Игра написана на SDL, поэтому проблем особых быть не должно. Но возникает проблема на этапе линковки. Для демонстрации я написал небольшую программу:
const SDLLibName = 'libSDL.so';
function SDL_Init(flags: Longword): integer; cdecl; external SDLLibName;
procedure SDL_Quit; cdecl; external SDLLibName;
begin
SDL_Init(0);
SDL_Quit
end.
Она компилируется, проблема при линковке:
% ppc386 -Fl/usr/local/lib sdl.pas
/usr/local/lib//libSDL.so: undefined reference to `longjmp'
/usr/local/lib//libvga.so.1: undefined reference to `putchar'
/usr/local/lib//libSDL.so: undefined reference to `strcpy'
/usr/local/lib//libvga.so.1: undefined reference to `__stdoutp'
/usr/local/lib//libSDL.so: undefined reference to `warnx'
/usr/local/lib//libaa.so.1: undefined reference to `setjmp'
/usr/local/lib//libSDL.so: undefined reference to `waitpid'
/usr/lib/libvgl.so.3: undefined reference to `pause'
... и т.д. (ещё около сотни аналогичных сообщений)
система FreeBSD 5.3, на ней компилируются и работают игрушки на си, использующие SDL
% /usr/bin/ld --version
GNU ld version 2.15 [FreeBSD] 2004-05-23
Тестировалось с Free Pascal версий 1.0.10 и 1.9.2
Что я делаю неправильно?