dynamische libs mit $$ORIGIN und RPATH in *.pro festlegen

Alles rund um die Programmierung mit Qt
Antworten
Juergen
Beiträge: 4
Registriert: 2. Oktober 2009 13:24
Wohnort: Bremen

dynamische libs mit $$ORIGIN und RPATH in *.pro festlegen

Beitrag von Juergen »

Hallo Zusammen,

ich möchte unter SLES 11 eine Applikation erstellen, die dynamische libraries lädt.

Die Applikation soll auf dem Entwicklungsrechner im Verzeichnis

$MY_OWN_BASEDIR/bin gebaut werden und auf die Libraries in
$MY_OWN_BASEDIR/lib zugreifen.
Dort sollen ein paar qt modul libraries liegen und meine eigenen *.so Dateien.

Später soll auf dem Zielrechner (auf dem SLES 11 oder 12, 13, wie auch immer installiert ist) , auf dem die Applikation zum Einsatz kommt, in IRGENDEINEM Verzeichnis die Applikation installiert werden und laufen.
Auch dort wird es wieder .../bin und .../lib geben.

Ob ein Qt auf dem Zielrechner installiert ist und in welcher Version, soll egal sein.
Ich möchte die libraries aus meinem .../lib verwenden.

Nun habe ich nicht die Ahnung, wie ich das umsetzen kann, weiss aber, dass es so etwas wie $$ORIGIN , QMAKE_RPATH und -rpath gibt.

Ein passendes "Kochrezept - HowTo" habe ich nicht gefunden.
Kann mir jemand einen Link zu einem Grundlagendokument geben?

Vielen Dank
Jürgen

P.S.: Dies ist mein erster Thread in diesem Forum. Sollte ich irgendwelche Konventionen nicht eingehalten haben, dann bitte ein freundlichen Hinweis an mich ;-)
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Re: dynamische libs mit $$ORIGIN und RPATH in *.pro festlege

Beitrag von Mani99 »

Juergen hat geschrieben: $MY_OWN_BASEDIR/bin gebaut werden und auf die Libraries in
$MY_OWN_BASEDIR/lib zugreifen.
Dort sollen ein paar qt modul libraries liegen und meine eigenen *.so Dateien.
Du kommst aus der windows welt oder? Mit der $MY_OWN_BASEDIR/lib sache verstößt du quasi gegen den guten ton in linux.

Normalerweise legt man die qt libs unter /usr/libs/qt-x.x.x und seine eigenen unter /usr/libs/my_application-x.x.x ab.

Ich verstehe deine frage nicht ganz, was willst du jetzt genau machen? Das ein programm installiert wird, darum kümmert sich normalerweise die paketverwaltung, sonst müsstest du dein programm nach /usr/bin kopieren.

Ansonsten für qmake gibts da noch DESTDIR.

In deiner pro datei:

Code: Alles auswählen

DESTDIR = /usr/bin
Juergen
Beiträge: 4
Registriert: 2. Oktober 2009 13:24
Wohnort: Bremen

Beitrag von Juergen »

Hallo Manni99,

Deine Anmerkung aus welcher Welt ich stamme lasse ich einfach mal unkommentiert, das würde sonst zu weit führen. ;-) Erstmal Danke für Deine Antwort.

Ich habe einen weiteren Tipp bekommen und muß sagen, die Doku von Sun ist echt Klasse:

http://docs.sun.com/app/docs/doc/806-06 ... ew&q=rpath
http://docs.sun.com/app/docs/doc/805-30 ... ath+ORIGIN

Das werde ich mir erstmal zur Gemüte führen und dann weiter sehen.

Viele Grüße
Jürgen
Antworten