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

0

Я запускаю программу, которая включает библиотеку (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 показывает только путь, в котором начинается Earlybite. В этом случае
/home/MYUSERNAME/EB/IDA/Earlybite/, но если программа запускается, например, в /home/MYUSERNAME/EB/IDA/..., /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
    какая ошибка ?????
  • 0
    С $$ HOME: libIDA не найден, ida.h: нет такого файла или каталога
Теги:
linker
qt-creator
home-directory

1 ответ

0
Лучший ответ

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


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

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

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

О $$system ссылке $$system

  • 0
    Я просматривал сайт, на который указывает ваша ссылка, и кажется, что $$ HOME никогда не сработает ... (подтвердите?). ДОМ не может быть найден там. Я также пробовал сообщение ($$ HOME) = "" (в вариациях) Только сообщение ($$ _ PRO_FILE_PWD_) и сообщение ($$ PWD) возвращает действительное значение. $$ HOME / ... никогда не сработает, да?
  • 0
    @Earlybite Да, но взгляните на мою правку, чтобы ответить.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню