Hallo,
ich habe folgende zwei Dateien:
ExportTest.pas:
Delphi-Quellcode:
library ExportTest;
{$mode objfpc}
{$H+}
uses
ExportUnit;
procedure MainTest();
begin
WriteLn('MainTest');
end;
exports
MainTest;
end.
ExportUnit.pas:
Delphi-Quellcode:
unit ExportUnit;
{$mode objfpc}
{$H+}
interface
implementation
procedure UnitTest();
begin
WriteLn('
UnitTest');
end;
exports
UnitTest;
end.
Compiler ist Free Pascal, Betriebssystem Ubuntu 18.04.
Wenn ich diese Bibliothek nun kompiliere, ist die Prozedur
MainTest erfolgreich exportiert worden und kann von einem Programm heraus aufgerufen werden. Ein Aufruf der Prozedur
UnitTest scheitert hingegen. Wenn ich mit
nachsehe, findet das tatsächlich auch nur
MainTest als einzige exportierte Prozedur.
Entferne ich den Abschnitt
exports aus der
ExportTest.pas, so wird gar keine Prozedur mehr gefunden.
Die einzige Möglichkeit, die Prozedur
UnitTest erfolgreich zu exportieren, ist sie in
interface zu verweisen und unter
exports in der
ExportTest.pas mit aufzulisten, was aber natürlich ziemlich unschön ist.
Weiß jemand, ob ich etwas falsch mache? Oder ist diese Funktion einfach nicht im FPC (für Linux?) implementiert und der Exportabschnitt wird stillschweigend ignoriert?