c++ - Qt在build debug时将文件夹名中的release替换为debug

标签 c++ qt build qmake

我在 Windows 下有一个 Qt 5.5.1 项目(使用 qmake 和 jom,c++ msvc2012 构建)。 现在假设我的项目位于这样的文件夹中:

C:\my-release-project\project.pro

现在,当我在 Debug模式下仅在该文件夹中构建我的项目时,链接器会将库存储到:

C:\my-debug-project\...

我不知道为什么 qmake 将 DESTDIR 路径名中的每个版本都替换为 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) 您可以获得构建文件夹。然后,您必须根据构建类型决定是转到标准发布文件夹还是调试文件夹。

关于c++ - Qt在build debug时将文件夹名中的release替换为debug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44794793/

相关文章:

c++ - 当我们有纯虚函数层次结构时如何实例化一个对象?

c++ - 将 printf 数据写入 c++/cli 中的字符串变量

c++ - 在 Linux 上为 Mac OS X 编译 Qt 应用程序

c++ - 在现代 C++ 中有没有什么好的方法来获取 arg 类型列表形式的函数指针?

c++ - OpenCV imwrite() 不保存图像

qt - 发射和插槽顺序执行

qt - 甚至是 SplitView 中空间的初始分配

reactjs - Next.js 页面在生产版本中以 404 结尾

python - 问题构建 cx_Oracle - libclntsh.so.11.1 => 未找到

maven-2 - 如何在 Maven 中关闭 jar 压缩