【问题标题】:what do $$PWD and . mean in .pro in qt$$PWD 和 . qt 中 .pro 的意思
【发布时间】:2016-03-01 19:16:44
【问题描述】:

我在我的应用程序中遇到了一个lib缺失的问题,原来这可能与我对qt项目.pro文件中$$PWD.的理解有关。

  1. $$PWD. 也是如此,它们都表示 包含 .pro 文件的目录由构建过程生成的目录(例如:* ***-build-desktop-Qt_4_8_1_in_PATH__System__Debug)。或者,它们的含义不同。

  2. 在像OBJECTS_DIR = obj/Obj 这样的变量声明中,看起来. 表示生成的目录。而在HEADERS += remoteclient.h ./RealPlay/realplay.h \ 中,. 的意思是包含 .pro 文件的目录

  3. 它们在LIBS和DESTDIR等中的含义如何?

【问题讨论】:

  • 构建目录中的相应目录是$$OUT_PWD。您可以使用message(“PWD=$$PWD") 调试这些东西

标签: qt qmake


【解决方案1】:

$$PWD 表示当前文件(.pro 或 .pri)所在的目录。

LIBS 中的含义相同。我只是在我的项目中这样使用它:

LIBS += -L$$PWD/deps/android -lopenal

. 在 .pro 文件中没有任何特殊含义。它与 Linux/Unix shell 中的含义相同:当前工作目录。如果您在LIBS 中使用它,它很可能会引用正在运行链接命令的构建目录。 . 未展开。如果你说-L.,链接器会得到-L.

HEADERS += remoteclient.h ./RealPlay/realplay.h \ 的情况下,qmake 将相对于$$PWD 处理这些路径,因此是否存在. 并不重要。在这种情况下,HEADERS += $$PWD/remoteclient.h $$PWD/./RealPlay/realplay.h \ 将是有效的搜索路径。否则,外源构建将无法正常工作。

请注意,路径中间的. 没有任何作用。

【讨论】:

  • 所以如果OBJECTS_DIR = obj/Obj,你的意思是它实际上意味着$$PWD/obj/Obj?但事实是它在构建目录中,即 - 说.../Linux32/****-build-desktop-Qt_4_8_1_in_PATH__System__Debug/obj/Obj .pro 文件位于.../Linux32/QtCreator/ 中。我还是有点困惑
  • 我没有说任何关于 OBJECTS_DIR 的事情。它可能与构建目录有关:)
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
相关资源
最近更新 更多