c++ - 为什么 Qt 将 'PWD' 添加到未相对引用的库中?

标签 c++ qt syntax qt-creator

每当我在 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/

我的问题是

  1. 如果 Qt 提供库的绝对路径,为什么它以 PWD(当前工作目录)关键字开始路径?该约定遵循什么逻辑/良好的编程实践?
  2. 最重要的是,为什么它不会导致错误? Qt 如何知道何时搜索相对于工作目录以及何时不搜索? (因为这两种情况都以 PWD 关键字开头)

PS:我删除了 $$PWD 关键字,我的代码也能正常工作。

最佳答案

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

这听起来像是一个错误,并且已被报告 here但仍未解决。

关于c++ - 为什么 Qt 将 'PWD' 添加到未相对引用的库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450128/

相关文章:

c++ - 在 QML Scene3D 中使用 Qt3D QEntity

c++ - 动态编译时基类

python - 在 Qt Creator 中包含 Python

c++ - 如何将 txt 文件中的值插入 Qlist 并使用 QTablewideget

vim - 使用 Markdown 语法插件在 vim 中折叠文本

python - Ruby方法相当于python中的 "if a in list"?

c++ - 为什么编译Boost时使用 "arm-linux-gnueabi-g++"?

c++ - 用于识别 "const"错失机会的开发工具

用于跨平台桌面应用程序的 Ruby?

java - 使用 “new double”时发生编译时间错误