你认为$$PWD和。以qt表示的平均值

你认为$$PWD和。以qt表示的平均值,qt,qmake,Qt,Qmake,我在我的应用程序中遇到了一个缺少lib的问题,这可能与我对qt项目的.pro文件中的$$PWD和的理解有关 因此,$$PWD和都是指包含.pro文件的目录或通过构建过程生成的目录(如:***-build-desktop-Qt_4_8_1_in_PATH_System_Debug)。或者,它们的意思不同 在一些变量声明中,如OBJECTS\u DIR=obj/obj,它看起来像表示生成的DIR。然而,在HEADERS+=remoteclient.h./RealPlay/RealPlay.h\中,似

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

  • 因此,
    $$PWD
    都是指包含.pro文件的目录或通过构建过程生成的目录(如:***-build-desktop-Qt_4_8_1_in_PATH_System_Debug)。或者,它们的意思不同

  • 在一些变量声明中,如
    OBJECTS\u DIR=obj/obj
    ,它看起来像
    表示生成的DIR。然而,在
    HEADERS+=remoteclient.h./RealPlay/RealPlay.h\
    中,似乎
    表示包含.pro文件的目录

  • 它们在LIBS和DESTDIR等中的含义如何


  • $$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\
    将是这种情况下的有效搜索路径。否则,源代码外构建将无法工作


    注意,路径中的<代码> ./COD>不做任何事情。

    所以,在<代码> ObjsStdir=Obj/Obj< /C>,您的意思是“代码> $$PDW/Obj/Obj?但事实是它在build dir中,-也就是说,
    ../Linux32/**-build-desktop-Qt\u 4\u 8\u 1\u在路径系统调试/obj/obj
    中,
    .pro
    文件位于
    ../Linux32/QtCreator/
    中。我还是有点困惑,我没有说任何关于对象的东西。它可能与生成目录有关:)生成目录中的相应目录是
    $$OUT\u PWD
    。您可以使用
    消息(“PWD=$$PWD”)