Linux QT Creator C++:如何与 $$HOME 链接?
Posted
技术标签:
【中文标题】Linux QT Creator C++:如何与 $$HOME 链接?【英文标题】:Linux QT Creator C++: How to link with $$HOME? 【发布时间】:2014-08-25 08:35:30 【问题描述】:我在/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 环境变量链接。例如。
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/
但这也不起作用。 (我也用一个 $ 和两个 $ 符号尝试了每一次尝试......)
【问题讨论】:
With $$HOME: libIDA not found, ida.h: no such file or directory 【参考方案1】:编辑:我只记得你可以使用$$(HOME)
,它会在qmake执行期间读取环境变量,所以你只需要在HOME周围添加()
。使用$_PRO_FILE_PWD_
仍然是一个很好的做法,但我认为最后一个选项是一种解决方法,而不是简单的解决方案。
您可以尝试使用$$_PRO_FILE_PWD_
,此变量指向.pro
文件位置,并创建相对于项目文件的路径。另请查看qmake Variables 以获取更多参考资料。
或者你可以这样做:
HOME = $$system(echo $HOME)
message($$HOME)
LIBS += -L$$HOME ...
关于$$system
link
【讨论】:
我查看了您的链接指向的网站,似乎 $$HOME 将永远无法工作......(确认?)。 HOME 在那里找不到。我还尝试了 message($$HOME) = "" (变体)只有 message($$_PRO_FILE_PWD_) 和 message($$PWD) 会返回一个有效值。 $$HOME/... 永远不会工作,是吗? @Earlybite 是的,但看看我的编辑回答。 @Earlybite 是的,这是一个技巧,我使用系统调用从终端获取 $HOME 变量。但我找到了另一种解决方案,请查看。 不知道配置文件可以这样编辑! $$HOME 就是由这个创建的,是吗?并且不知道有可能收到消息......三个有用的部分。谢谢!顺便说一句:我如何添加@Name? @Earlybite 是的,您可以在 .pro 文件中创建自己的变量。如果您想了解更多信息,应该查看 QMake 文档。以上是关于Linux QT Creator C++:如何与 $$HOME 链接?的主要内容,如果未能解决你的问题,请参考以下文章
Visual C++ 编译器 2012 年 11 月 CTP 与 Qt Creator for C++11