Динамическая библиотека:
- Код: Выделить всё
- library test;
 procedure func; stdcall;
 begin
 end;
 exports
 func;
 end.
Программа:
- Код: Выделить всё
- uses
 DynLibs;
 var
 Handle: TLibHandle;
 begin
 Handle := LoadLibrary(ParamStr(1));
 if Handle = NilHandle then
 Writeln('Cannot load lib ', ParamStr(1))
 else
 Writeln('Libary loaded');
 FreeLibrary(FHandle);
 end.
Компиляция и запуск:
- Код: Выделить всё
- doj@dev:~/devel/lib$ fpc -Cg test.dpr
 Free Pascal Compiler version 2.4.0-2 [2010/02/20] for arm
 Copyright (c) 1993-2009 by Florian Klaempfl
 Target OS: Linux for ARMEL
 Compiling test.dpr
 Assembling test
 Linking libtest.so
 /usr/bin/ld: warning: link.res contains output sections; did you forget -T?
 10 lines compiled, 0.6 sec
 doj@dev:~/devel/lib$ fpc prog.dpr
 Free Pascal Compiler version 2.4.0-2 [2010/02/20] for arm
 Copyright (c) 1993-2009 by Florian Klaempfl
 Target OS: Linux for ARMEL
 Compiling prog.dpr
 Assembling program
 Linking prog
 /usr/bin/ld: warning: link.res contains output sections; did you forget -T?
 18 lines compiled, 0.8 sec
 doj@dev:~/devel/lib$ ./prog /usr/lib/libm.so
 Library loaded
 doj@dev:~/devel/lib$ ./prog libtest.so
 Cannot load lib libtest.so
 Runtime error 216 at $400C1FBC
 $400C1FBC
 $40312508
Видно, что сторонние библиотеки из /usr/lib/ грузятся, а только что созданные — нет. Операционная система — Debian, процессор — arm. Подозреваю, что это баг в компиляторе под arm.
Правильно ли я компилирую? Никто с подобным не сталкивался?








