Hallo,
ich brauch mal wieder Hilfe. Ich habe Units, die Bibliotheken .a einbinden.
Beim Übersetzen bekomme ich den im Titel genannten Linkfehler. Die fraglichen Bibliotheken befinden sich im Unitpfad. Hab sie außerdem noch mal im Pfad der zu übersetzenden Anwendung. Der Linkfehler erscheit dennoch. Was muss ich noch einstellen. .a sollte doch ein standardisiertes Format sein, bei dem ich nicht etwa von der Verwendung einer bestimmten fpc Version abhängig bin?
Wer kann mir weiter helfen?
-Fu... und -Fl... habe ich schon verwendet, die .a Bibliotheken sind im selben Pfad, wie die Units, die die Bibliotheken benutzen.
Compilerdirektive in derjenigen Unitit, die die Funktionsköpfe der Bibliotheksfunktionen enthält:
{$LINKLIB myfunc} wenn Dateiname der lib:
libmyfunc.a Laut fpc Konvention wird der Präfix lib hier weggelassen, ebenso die extension
.a bei statischen Bibliotheken.
In FPC werden die Funktionen dann mit AUfrufkonvention und External Direktive in den Interfaceteil der
Unit geschrieben, anders als in Delphi.
function Name(<Parameterliste>): Ergebnistyp; Aufrufkonvention; external; //bei statischen libs nichts weiter
So habe ich es zumindest in den freepascal Quellcodes gesehen.
In einer der Units sind nicht alle in der Lib vorhandenen Funktionen aufgeführt. Ich habe 3 Units mit Bibliotheksfunktionen. In einer davon nur die von mir benötigten in den anderen beiden alle die in der Bibliothek implementiert sind.
Der Implementationsteil bleibt dann leer es sei denn, es folgen noch andere bibliotheksfremde Funktionen.
Das also hab ich alles bedacht. Warum aber jetzt der Linkfehler?