C++ Linux QT Creator C++;:如何与$$HOME链接?

C++ Linux QT Creator C++;:如何与$$HOME链接?,c++,linux,linker,qt-creator,home-directory,C++,Linux,Linker,Qt Creator,Home Directory,我在 /home/MYUSERNAME/EB/IDA/Earlybite/ 库IDA有两个文件夹: /home/MYUSERNAME/EB/IDA/IDA/Includes/(用于h文件) /home/MYUSERNAME/EB/IDA/IDA/Libs/(对于so文件) 这是起作用的链接: LIBS += -L$$PWD/../IDA/Libs/ -Wl,-rpath=$$PWD/../IDA/Libs/ -lIDA -ldl -lpthread -lrt INCLUDEPATH += $$P

我在
/home/MYUSERNAME/EB/IDA/Earlybite/

库IDA有两个文件夹:
/home/MYUSERNAME/EB/IDA/IDA/Includes/(用于h文件)

/home/MYUSERNAME/EB/IDA/IDA/Libs/(对于so文件)

这是起作用的链接:

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环境变量链接。例如

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/
但这也不起作用。
(我还尝试了使用单个$和两个$符号的每一次尝试…

编辑:我刚刚想起,您可以使用
$$(HOME)
,它将在qmake执行期间读取环境变量,所以您只需要在HOME周围添加
()
。使用
$\u PRO\u FILE\u PWD
仍然是一种很好的做法,但我认为最后一个选项是一种变通方法,而不是简单的解决方案


您可以尝试使用
$\u PRO\u FILE\u PWD\u
,此变量指向
.PRO
文件位置,并创建相对于项目文件的路径。还要检查其他参考资料

或者你可以:

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

关于
$$system

带有$$HOME:libIDA未找到,ida.h:没有这样的文件或目录我查看了您的链接指向的站点,似乎$$HOME永远不会工作。。。(确认吗?)。在那里找不到家。我还尝试了message($$HOME)=“”(在变体中)仅message($$\u PRO\u FILE\u PWD)和message($$PWD)返回有效值$$主页/。。。永远不会工作,是吗?@Earlybite是的,但看看我的编辑回答。@Earlybite是的,这是一个技巧,我使用系统调用从终端获取$HOME变量。但是我又找到了一个解决方案,看看吧。我不知道pro文件可以这样编辑!而$$HOME就是由此创建的,是吗?我不知道有可能得到一个信息。。。三个有用的部分。谢谢顺便说一句:如何添加@Name?@Earlybite是的,您可以在.pro文件中创建自己的变量。如果您想了解更多信息,应该查看QMake文档。