Qt在build debug时将文件夹名中的release替换为debug
Qt replaces release into debug in folder names when building debug
我在 windows 下有一个 Qt 5.5.1 项目(使用 qmake 和 jom,c++ msvc2012 构建)。
现在假设我的项目位于这样的文件夹中:
C:\my-release-project\project.pro
现在,当我在调试模式下仅在该文件夹中构建项目时,链接器会将库存储到:
C:\my-debug-project\...
不知道为什么qmake会把DESTDIR
路径名里的每一个release都替换成debug。我怎样才能禁用它?
正如我在评论中所述,这种行为是 qmake 在使用 DESTDIR
定义输出目录时有意为之的。参见:https://codereview.qt-project.org/#/c/66221/
For backwards compatibility the new exclusive build behavior is only
enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt
itself applies globally to everything but DESTDIR, and for libs and
tools also applies to DESTDIR. The reason for leaving out DESTDIR in
the general case is because many tests and examples assume the old
behavior for DESTDIR.
我现在的解决方案是更改我的项目,不再使用 DESTDIR
,而是使用 shadowbuilds。使用 $$shadowed($$PWD)
您可以获得构建文件夹。然后,您将必须根据构建类型决定是进入标准发布文件夹还是调试文件夹。
我在 windows 下有一个 Qt 5.5.1 项目(使用 qmake 和 jom,c++ msvc2012 构建)。 现在假设我的项目位于这样的文件夹中:
C:\my-release-project\project.pro
现在,当我在调试模式下仅在该文件夹中构建项目时,链接器会将库存储到:
C:\my-debug-project\...
不知道为什么qmake会把DESTDIR
路径名里的每一个release都替换成debug。我怎样才能禁用它?
正如我在评论中所述,这种行为是 qmake 在使用 DESTDIR
定义输出目录时有意为之的。参见:https://codereview.qt-project.org/#/c/66221/
For backwards compatibility the new exclusive build behavior is only enabled for variables named by QMAKE_DIR_REPLACE_SANE, which for Qt itself applies globally to everything but DESTDIR, and for libs and tools also applies to DESTDIR. The reason for leaving out DESTDIR in the general case is because many tests and examples assume the old behavior for DESTDIR.
我现在的解决方案是更改我的项目,不再使用 DESTDIR
,而是使用 shadowbuilds。使用 $$shadowed($$PWD)
您可以获得构建文件夹。然后,您将必须根据构建类型决定是进入标准发布文件夹还是调试文件夹。