Ich habe jetzt beim Googlen gefunden, dass die Library zur Compilierzeit vorhanden sein muss
Dies wollte ich eigentlich sagen, da bei mir 'libdl' vorhanden war, kompilierte das Programm ohne Fehler.
Unter Linux wird ein Minimal-Linker statisch in das Programm hineingelinkt, der die jeweilige Bibliothek dynamisch laden kann.
Das merkt man gut, wen man die Package OpenGLControl in Lazarus installieren will, fehlt da eine lib welche fur OpenGL gebraucht wird, bricht Lazarus beim kompilieren ab.
Übrigens gibt es 2 Methoden um lib einzubinden, ein statische und eine dynamische.
Bei der dynamische Variante, hat man den Vorteil, das die App nicht schon beim starten abricht, wen die lib nicht vorhanden ist.
Ob die dynamische Variante auch unter Linux funktioniert, habe ich nie probiert. Man müsste dazu mal die Unit 'dynlib' genauer angucken.
Statisch:
Code: Alles auswählen
function QAPIExtOpenCard(cardnum:Longint;devnum:Longint): Longint; stdcall; external 'qlib32.dll'
Dynamisch:
Code: Alles auswählen
uses
Windows; // evtl. dynlibs
var
LibHandle:THandle;
QAPIExtOpenCard:function (cardnum:Longint;devnum:Longint): Longint; stdcall;
begin
LibHandle := LoadLibrary(PChar('qlib32.dll'));
Pointer(QAPIExtOpenCard):=GetProcAddress(LibHandle, 'QAPIExtOpenCard');
....