如何阻止MVSC在Qt Creator编译时生成Release和Debug文件夹?
如何让MSVC编译时不生成Release/Debug文件夹,直接输出到指定构建路径?
当然可以实现!Qt Creator给MSVC默认配置的Release/Debug子目录是可调整的,这里有几种靠谱的方法帮你搞定:
方法一:修改Qt Creator的全局构建套件配置
这是一劳永逸的方式,改完所有用这个MSVC套件的项目都会生效:
- 打开Qt Creator,点击顶部菜单栏的
工具 > 选项,然后切换到构建和运行 > 套件标签页 - 找到你正在使用的MSVC套件(比如MSVC 2019 64bit),点击右侧的
编辑按钮 - 在弹出的编辑窗口里,切换到
构建标签,找到构建目录的模板字符串,默认应该是类似../build-%{CurrentProject:Name}-%{Kit:FileSystemName}-%{BuildType} - 把末尾的
-%{BuildType}删掉,改成../build-%{CurrentProject:Name}-%{Kit:FileSystemName}(或者你自己喜欢的路径模板) - 保存配置后,新的构建就会直接把输出文件放到你指定的根目录,不会再生成Release/Debug子文件夹了
方法二:通过项目.pro文件自定义输出路径
如果你只想针对单个项目调整,修改.pro文件是更灵活的选择,还能顺便管理中间文件:
# 仅对MSVC平台生效 win32-msvc* { # 禁用Qt默认的debug/release子目录生成逻辑 CONFIG -= debug_and_release debug_and_release_target # 指定可执行文件输出到当前构建目录($$OUT_PWD是qmake内置变量,指向当前构建路径) DESTDIR = $$OUT_PWD # 可选:把中间编译文件(obj、moc、rcc等)也放到同一目录的子文件夹里,避免根目录混乱 OBJECTS_DIR = $$DESTDIR/.obj MOC_DIR = $$DESTDIR/.moc RCC_DIR = $$DESTDIR/.rcc UI_DIR = $$DESTDIR/.ui }
添加这段代码到你的.pro文件后,qmake会自动调整输出路径,跳过Release/Debug子目录的生成。
方法三:构建时临时指定qmake参数
如果你只是偶尔需要这种行为,不想改配置或代码,可以在构建前给qmake加参数:
打开Qt Creator的项目面板,找到当前MSVC套件的构建步骤,在qmake步骤的附加参数里添加:
CONFIG-=debug_and_release CONFIG-=debug_and_release_target DESTDIR=/path/to/your/target/folder
替换/path/to/your/target/folder为你实际想要的输出路径即可。
额外提醒
这样设置后,Release和Debug版本的可执行文件会放到同一个目录,切换构建类型时记得先清理之前的构建文件,避免新旧文件冲突。如果想区分版本又不想用子目录,可以给exe加个后缀,比如在.pro里再加一段:
win32-msvc* { CONFIG(debug, debug|release) { TARGET = $$TARGET-debug } else { TARGET = $$TARGET-release } }
这样Debug版本会叫xxx-debug.exe,Release版本叫xxx-release.exe,就能共存啦。
内容的提问来源于stack exchange,提问作者aarelovich
相关产品推荐
相关产品推荐

