AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[GNU/Linux, FPC] SO's einbinden

Ein Thema von implementation · begonnen am 10. Feb 2011 · letzter Beitrag vom 9. Apr 2011
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: Eberfing
597 Beiträge
 
FreePascal / Lazarus
 
#11

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

  Alt 12. Feb 2011, 15:07
Alternativ zum Linken mit external 'libnamename '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 ({$ifdef ...} ) rumschlägst, dann kannst du zwischen shared und dynamic linking für Release- bzw. Entwicklungsversionen umschalten.

Gruß,
Sven
Sven
[Free Pascal Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#12

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

  Alt 13. Feb 2011, 15:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.175 Beiträge
 
#13

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

  Alt 13. Feb 2011, 15:54
Will leider auch nicht
LD_PRELOAD?

Oh und: "man ld.so" ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (13. Feb 2011 um 16:19 Uhr)
  Mit Zitat antworten Zitat
Maik81ftl

Registriert seit: 31. Mär 2011
Ort: Wahlstedt
26 Beiträge
 
FreePascal / Lazarus
 
#14

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

  Alt 9. Apr 2011, 13:41
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

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.
Die Definition eine Bibliothek ist bei mir eine *.so
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf