每当我在 Qt 项目(在 Qt 5.2 中)的 .pro
文件中添加一个库时,它会在库的路径之前添加一个 $$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/
我的问题是
- 如果 Qt 提供库的绝对路径,为什么它以 PWD(当前工作目录)关键字开始路径?该约定遵循什么逻辑/良好的编程实践?
- 最重要的是,为什么它不会导致错误? Qt 如何知道何时搜索相对于工作目录以及何时不搜索? (因为这两种情况都以 PWD 关键字开头)
PS:我删除了 $$PWD
关键字,我的代码也能正常工作。
最佳答案
如果项目和库都在同一个驱动器中,则不会发生这种情况,并且会自动生成相对路径。但在 Windows 上,如果您添加位于另一个驱动器中的库,它会添加 $$PWD
后跟绝对路径。
这听起来像是一个错误,并且已被报告 here但仍未解决。
关于c++ - 为什么 Qt 将 'PWD' 添加到未相对引用的库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450128/