AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[GNU/Linux, FPC] SO's einbinden

Ein Thema von implementation · begonnen am 10. Feb 2011 · letzter Beitrag vom 9. Apr 2011
Antwort Antwort
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

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

  Alt 11. Feb 2011, 20:10
Werden Bibliotheken etwa nur dort erkannt?
Das läßt sich einstellen. Siehe: man ld.so

Am besten nimmst du ein Wrapper-Skript. Ich nehme an, daß deine Anwendung CrayExample heißt und die .so libCray.so. Desweiteren nehmen wir an, daß .so und Binary im gleichen Verzeichnis liegen:

Code:
#!/usr/bin/env bash
# Hier den Pfad zu deinem Programm
CRAY_APP=/home/bla/foo/bar/CrayExample
LD_PRELOAD=`dirname $CRAY_APP`/libCray.so $CRAY_APP
Vereinfacht kannste auf der Shell auch das machen:

Code:
LD_PRELOAD=./libCray.so ./CrayExample
Wie gesagt, RTFM: man ld.so
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

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

  Alt 11. Feb 2011, 20:16
Kleiner Hinweis noch zu der Syntax. Wenn in einem (Bash)Skript (andere Shells haben zT andere Syntax) benutzt, wird:
Code:
VARIABLE=WERT
die Umgebungsvariablen nur innerhalb des Skripts beeinflussen. Danach kann man entweder explizit:
Code:
export VARIABLE
ausführen, was die portablere Variante ist von (Bash):
Code:
export VARIABLE=WERT
Solange du das Skript (bspw. foo.sh) nicht "sourcst" ("to source"), also
Code:
source foo.sh
# ... oder
. foo.sh
... ausführst, wird die Umgebung deiner aktuellen Shellsitzung nicht beeinflußt.

Verkürzt geht auch:
Code:
VARIABLE=WERT PROGRAMM
welches die VARIABLE auf WERT setzt und zwar einzig für diesen Aufruf von PROGRAMM.

Subshells sind dann eventuell für diverse Sachen auch sinnvoll ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 12. Feb 2011, 14: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 Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:47 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