我在我的应用中遇到了一个缺少lib的问题,结果发现这可能与我对qt项目的.pro文件中$$PWD
和.
的理解有关。
所以$$PWD
和.
都意味着 dir,其中包含.pro文件或 dir,它是由构建过程生成的(如:**** - build-desktop-Qt_4_8_1_in_PATH__System__Debug)。或者,它们意味着不同的东西。
在OBJECTS_DIR = obj/Obj
之类的变量声明中,看起来.
表示生成的目录。然而,在HEADERS += remoteclient.h ./RealPlay/realplay.h \
中,.
表示包含.pro文件的目录。
LIBS和DESTDIR等的含义如何?
答案 0 :(得分:8)
$$PWD
表示当前文件(.pro或.pri)所在的目录。
LIBS
中的含义相同。我只是在我的项目中使用它:
LIBS += -L$$PWD/deps/android -lopenal
.
在.pro文件中没有任何特殊含义。它与Linux / Unix shell中的含义相同:当前的工作目录。如果在LIBS
中使用它,它很可能会引用正在运行link命令的构建目录。 .
未展开。如果你说-L.
,链接器就会得到-L.
在HEADERS += remoteclient.h ./RealPlay/realplay.h \
的情况下,qmake会将这些路径视为$$PWD
,因此如果有.
则无关紧要。在这种情况下,HEADERS += $$PWD/remoteclient.h $$PWD/./RealPlay/realplay.h \
将是有效的搜索路径。否则,源外构建将无法工作。
请注意,路径中间的.
没有做任何事情。