Linux QT Creator C ++: как связаться с $$ HOME?

Я запускаю программу, которая включает в себя библиотеку (IDA) в
/home/MYUSERNAME/EB/IDA/Earlybite/

Библиотека IDA имеет две папки:
/home/MYUSERNAME/EB/IDA/IDA/Includes/ (for h-file)
/home/MYUSERNAME/EB/IDA/IDA/Libs/ (for so-files)

Это ссылка, которая работает:

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

Проблема в том, что PWD показывает только путь, по которому начинается ранний прикус. В этом случае
/home/MYUSERNAME/EB/IDA/Earlybite/, но если программа запускается, например, в /home/MYUSERNAME/EB/IDA/ … связь не будет работать.

Поэтому я попытался установить связь с переменной окружения HOME. Например.

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

Но это не работает.

Я тоже пробовал

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

Но это тоже не работает.
(Я также пробовал каждую попытку с одним $ и двумя символами $ …)

0

Решение

Редактировать: Я только что вспомнил, что вы можете использовать $$(HOME) который будет читать переменную окружения во время выполнения qmake, так что вам просто нужно добавить () вокруг дома. С помощью $_PRO_FILE_PWD_ по-прежнему хорошая практика, но я думаю, что последний вариант — это обходной путь, а не простое решение.


Вы можете попробовать и использовать $$_PRO_FILE_PWD_эта переменная указывает на .pro расположение файла и создайте путь относительно файла проекта. Также проверьте Переменные qmake для дополнительных ссылок.

Или вы можете сделать:

HOME = $$system(echo $HOME)
message($$HOME)
LIBS += -L$$HOME ...

Около $$system ссылка на сайт

0

Другие решения


По вопросам рекламы [email protected]