gpt4 book ai didi

c++ - Linux QT 创建者 C++ : How to link with $$HOME?

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:42 25 4
gpt4 key购买 nike

我启动了一个程序,其中包含一个库(IDA)
/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周围添加()。使用 $_PRO_FILE_PWD_ 仍然是一个很好的做法,但我认为最后一个选项是一种解决方法,而不是简单的解决方案。

<小时/>

您可以尝试使用$$_PRO_FILE_PWD_,该变量指向.pro文件位置,并创建相对于项目文件的路径。另请检查qmake Variables以获得更多引用。

或者你可以这样做:

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

关于$$系统 link

关于c++ - Linux QT 创建者 C++ : How to link with $$HOME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com