Linking mit $HOME

24/08/2014 - 11:18 von Heinz-Mario Frühbeis | Report spam
Hallo,

z. Z. linke ich wie folgt:
LIBS += -L$$PWD/../IDA/Libs/ -Wl,-rpath=$$PWD/../IDA/Libs/ -lIDA -ldl
-lpthread -lrt
INCLUDEPATH += $$PWD/../IDA/Includes/

Aber das ist "doof", weil ich per PWD "nur" das aktuelle Verzeichnis
bekomme, von wo aus das Programm gestartet wird und da kann ../ u.U.
nicht mehr stimmen.
Also habe ich mir überlegt, daß es doch besser sei "von unten her"
anzusetzen und zwar mit $HOME.
$HOME gibt es wohl scheinbar auch, aber es funktioniert noch nicht.
Mein home-Verzeichnis ist /home/USERNAME. Und in
/home/USERNAME/EB/IDA/IDA/Libs/ liegen die so's und in
/home/USERNAME/EB/IDA/IDA/Includes/ liegen die h-Dateien.
Wenn ich jetzt wie folgt

LIBS += -L$HOME/EB/IDA/IDA/Libs/ -Wl,-rpath=$HOME/EB/IDA/IDA/Libs/ -lIDA
-ldl -lpthread -lrt
INCLUDEPATH += $HOME/EB/IDA/IDA/Includes/

linke, dann kommt "ida.h: No such file or directory".
Ich gehe mal davon aus, daß $home tatsàchlich nur das (mein)
home-Verzeichnis wiedergibt, also /home/USERNAME ist.

So <https://www.google.de/?gws_rd=ssl#q...k+home> habe
ich u.a. gesuchmaschint und hier
<http://stackoverflow.com/questions/...-linux>
wird ja "auch" $HOME genommen.

Und nun möchte ich anfragen, warum es mit $PWD funktioniert, aber mit
$HOME nicht. Und natürlich wie es mit $HOME funktioniert.

Mit einem Dankeschön im voraus und
mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Rainer Weikusat
24/08/2014 - 19:12 | Warnen spam
Heinz-Mario Frühbeis writes:
Hallo,

z. Z. linke ich wie folgt:
LIBS += -L$$PWD/../IDA/Libs/ -Wl,-rpath=$$PWD/../IDA/Libs/ -lIDA -ldl
-lpthread -lrt
INCLUDEPATH += $$PWD/../IDA/Includes/

Aber das ist "doof", weil ich per PWD "nur" das aktuelle Verzeichnis
bekomme, von wo aus das Programm gestartet wird und da kann ../
u.U. nicht mehr stimmen.



Im gegebenen Falls bekommst Du damit 'statisch' das aktuelle Verzeichnis zu dem
Zeitpunkt, an dem der Linker ausgefuehrt wurde (Tip: ldd program zeigt
alle dynamischen Bibliotheken, mit denen ein Programm gelinkt wurde und
ausserdem, welche Biliotheksdateien tatsaechlich verwendet worden
waeren, haette man das Programm stattdessen gestartet.

Also habe ich mir überlegt, daß es doch besser sei "von unten her"
anzusetzen und zwar mit $HOME.
$HOME gibt es wohl scheinbar auch, aber es funktioniert noch nicht.
Mein home-Verzeichnis ist /home/USERNAME. Und in
/home/USERNAME/EB/IDA/IDA/Libs/ liegen die so's und in
/home/USERNAME/EB/IDA/IDA/Includes/ liegen die h-Dateien.
Wenn ich jetzt wie folgt

LIBS += -L$HOME/EB/IDA/IDA/Libs/ -Wl,-rpath=$HOME/EB/IDA/IDA/Libs/
-lIDA -ldl -lpthread -lrt
INCLUDEPATH += $HOME/EB/IDA/IDA/Includes/

linke, dann kommt "ida.h: No such file or directory".
Ich gehe mal davon aus, daß $home tatsàchlich nur das (mein)
home-Verzeichnis wiedergibt, also /home/USERNAME ist.



Die genaue Syntax, die Deine IDE hier moechte, ist mir nicht bekannt
aber sowohl PWD also auch HOME sind Umgebungsvariablen und wen $$PWD
fuer PWD funktioniert, sollte es fure HOME wohl auch $$HOME sein.

Ähnliche fragen