Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   [GNU/Linux, FPC] SO's einbinden (https://www.delphipraxis.net/158262-%5Bgnu-linux-fpc%5D-sos-einbinden.html)

JamesTKirk 12. Feb 2011 14:07

AW: [GNU/Linux, FPC] SO's einbinden
 
Alternativ zum Linken mit
Delphi-Quellcode:
external 'libname' name 'symbol';
(shared linking) könntest du die SO auch dynamisch laden (siehe hierzu die Unit dynlibs), dann kannst du nämlich den absoluten Pfad zur Bibliothek angeben.

Wenn du dich noch ein wenig mit Compilerbedingungen (
Delphi-Quellcode:
{$ifdef ...}
) rumschlägst, dann kannst du zwischen shared und dynamic linking für Release- bzw. Entwicklungsversionen umschalten.

Gruß,
Sven

implementation 13. Feb 2011 14:27

AW: [GNU/Linux, FPC] SO's einbinden
 
Zitat:

Zitat von fkerber (Beitrag 1081114)
Hi,

ein

Code:
export LD_LIBRARY_PATH=Pfad/zur/so:$LD_LIBRARY_PATH
auf der Console sollte es eigentlich tun.


LG, Frederic

Will leider auch nicht :?

@JamesTKurk:
Eigentlich wollte ich es hier auf die external-Weise machen, ist hier einfach bequemer.

Assarbad 13. Feb 2011 14:54

AW: [GNU/Linux, FPC] SO's einbinden
 
Zitat:

Zitat von implementation (Beitrag 1081423)
Will leider auch nicht :?

LD_PRELOAD? :roll:

Oh und: "man ld.so" ...

Maik81ftl 9. Apr 2011 12:41

AW: [GNU/Linux, FPC] SO's einbinden
 
Zitat:

Zitat von implementation (Beitrag 1081423)
Zitat:

Zitat von fkerber (Beitrag 1081114)
Hi,

ein

Code:
export LD_LIBRARY_PATH=Pfad/zur/so:$LD_LIBRARY_PATH
auf der Console sollte es eigentlich tun.


LG, Frederic

Will leider auch nicht :?

@JamesTKurk:
Eigentlich wollte ich es hier auf die external-Weise machen, ist hier einfach bequemer.

Nun diese Bittere Pille habe ich auch schon schlucken müßen.

du hattest gefragt, ob *.so nur im lib Ordner gefunden werden? nun diese Frage ist mit einem KLAREM JAIN zu beantworten. es gibt wie auch schon erwähnt wurde die load.so.con, welche du dir umschreiben/Anpassen mußt. ich persönlich würde davon aber die finger lassen.

Daher mein Tip, wenn dein Proggi Plattform übergreifend Arbeiten soll.

Delphi-Quellcode:
const
  {$IFDEF WIN32}
  Codedll = Phadangabe für Windows;
  {$ELSE}
  Codedll = '/libMyCode.so';
  {$ENDIF}
den Aufruf selber würde ich an deiner Stelle wie folgt aussehen lassen

Delphi-Quellcode:
Function XY(Value: PChar):PChar; {$IFDEF WIN32}stdcall{$ELSE}cdecl{$ENDIF}; External Codedll;
wenn du da auch alle regeln bei der Verwenung in Lazarus beachtest, hast du keine Probleme.

zugegeben, das bei Lazarus keine Sharemem verwendet wird finde ich selber auch schade, Habe bei Delphi gerne mit dem Sharemem geschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz