为什么Qt会向相对不被引用的库添加'PWD'?

Why does Qt add 'PWD' to libraries that are NOT referenced relatively?

本文关键字:添加 PWD 引用 Qt 相对 为什么      更新时间:2023-10-16

每当我在Qt项目的.pro文件中添加库时(在Qt 5.2中),它都会在库的路径和include路径之前添加一个$$PWD。例如

INCLUDEPATH += $$PWD/C:/opencv/opencv-msvc2013/install/include

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/opencv/opencv-msvc2013/install/x64/vc12/lib/

我的问题是

  1. 如果Qt提供了到库的绝对路径,为什么它会以PWD(Present Working Directory)关键字启动路径?这个惯例遵循什么逻辑/良好的编程实践
  2. 最重要的是,为什么它不会导致错误?Qt如何知道何时相对于工作目录进行搜索,何时不进行搜索?(由于这两种情况都以PWD关键字开头)

附言:我删除了$$PWD关键字,我的代码也运行得很好。

如果项目和库都在同一个驱动器中,则不会发生这种情况,并且会自动生成相对路径。但在Windows上,如果您添加另一个驱动器中的库,它会添加$$PWD,后面跟着一个绝对路径。

这听起来像是一个bug,这里已经报告过了,但它仍然没有解决。