Ошибка при линковке

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение GaBla » 16.07.2005 15:19:50

Здравствуйте, я занимаюсь переносом игры из 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

Что я делаю неправильно?
GaBla
 

Сообщение GaBla » 16.07.2005 19:39:33

Всем спасибо, проблема решилась путём включения директив:
{$linklib c}
{$linklib pthread}
GaBla
 

Сообщение Dmitry » 19.07.2005 11:40:54

GaBla писал(а): Всем спасибо, проблема решилась путём включения директив:
{$linklib c}
{$linklib pthread}

В файле fpc.cfg нужно прописать

-k -lc

Тогда FPC будет подключать libc.so автоматически.
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

Рейтинг@Mail.ru