Freepascal -> *.ppu versus *.o -> *.o unabhängig von *.ppu

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Antworten
fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

Freepascal -> *.ppu versus *.o -> *.o unabhängig von *.ppu

Beitrag von fpGUIcoder »

Hallo!

Jede fpc-Unit besitzt eine *.ppu Datei und eine *.o Datei. Kann die *.o Datei auch unabhängig von der *.ppu Datei verwendet werden. Zum Beispiel, um neue Bibliotheken zusammen zu stellen?

Wenn das funktionieren würde, könnte ich, wie schon gesagt, den Code der Units auch in denderen neu zusammenzustellenden Bibliotheken verwenden. Ich frage aber liber vorher mal, bevor ich hier Zeit investiere, nur um am Ende festzustellen, daß die *.ppu Datei doch zwingend mit benötigt wird.


.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Freepascal -> *.ppu versus *.o -> *.o unabhängig von *.p

Beitrag von Socke »

fpGUIcoder hat geschrieben:Jede fpc-Unit besitzt eine *.ppu Datei und eine *.o Datei. Kann die *.o Datei auch unabhängig von der *.ppu Datei verwendet werden. Zum Beispiel, um neue Bibliotheken zusammen zu stellen?

Wenn das funktionieren würde, könnte ich, wie schon gesagt, den Code der Units auch in denderen neu zusammenzustellenden Bibliotheken verwenden. Ich frage aber liber vorher mal, bevor ich hier Zeit investiere, nur um am Ende festzustellen, daß die *.ppu Datei doch zwingend mit benötigt wird.

Die *.o-Datei ist Compilierunabhängier Maschinen-Code. Diese Dateien könntest du prinzipiell auch in C-Programme hineinlinken; hier brauchst du dann aber eine C-Header-Datei, die die vorhandenen Funtkionen bekannt gibt. In den *.ppu-Dateien speichert der FPC den Interface-Teil der Units, damit er diese verlinken kann; Die *.ppu-Dateien sind also Header-Dateien auf Compiler-Ebene.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Freepascal -> *.ppu versus *.o -> *.o unabhängig von *.p

Beitrag von marcov »

Was Socke sagt stimmt, aber die Namen der Prozeduren und Variabelen in FPC units sind standard Gemangelt (mangled). Und die Ermanglung kann wie auf C++ von Version bis Version anders sein.

Man soll also mindestens die Prozeduren die man extern nutzen will mit public alias oder so eine entmangelnde Namen geben.

Antworten