![]() |
Schlüsselwort "exports" wird in Unit ignoriert
Hallo,
ich habe folgende zwei Dateien: ExportTest.pas:
Delphi-Quellcode:
ExportUnit.pas:
library ExportTest;
{$mode objfpc} {$H+} uses ExportUnit; procedure MainTest(); begin WriteLn('MainTest'); end; exports MainTest; end.
Delphi-Quellcode:
Compiler ist Free Pascal, Betriebssystem Ubuntu 18.04.
unit ExportUnit;
{$mode objfpc} {$H+} interface implementation procedure UnitTest(); begin WriteLn('UnitTest'); end; exports UnitTest; end. 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
Code:
nachsehe, findet das tatsächlich auch nur MainTest als einzige exportierte Prozedur.
nm -D libUnitTest.so
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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz