Qt Creator Projects视图锤子图标:含义、来源及消除方法(附版本)
Qt Creator Projects侧边栏的锤子图标条目解析与解决方法
我之前在使用Qt Creator早期版本搭配CMake时也碰到过一模一样的情况,给你详细拆解一下:
这些锤子图标是什么?
带锤子图标的条目都是CMake生成的可构建目标(Build Targets)。Qt Creator会把CMakeLists.txt里定义的所有目标——不管是你手动创建的可执行文件、库,还是CMake自带的辅助目标(比如clean、install),甚至子项目里的各类目标——都识别出来并展示,锤子图标就是用来标识这个条目是可以单独触发构建操作的。
为什么会出现这么多?
主要有两方面原因:
- CMake本身会生成不少隐式目标,比如
all(构建所有目标)、clean(清理构建产物)、install(安装项目),如果你的项目用到了CTest,还会额外出现test这类目标; - Qt Creator 4.3.1对CMake目标的过滤逻辑比较基础,几乎会把所有目标都直接列出来,不像后续版本会自动筛选出你更关注的可执行文件/核心库目标。再加上你的CMake版本3.9.5也相对较早,生成的目标列表本身就会比较“全面”。
怎么消除(隐藏)它们?
给你几个实用的解决方法,按操作便捷性排序:
1. 在Qt Creator内直接过滤目标
这是最快的解决方案:
- 找到Projects侧边栏的右上角,应该有个漏斗样式的筛选按钮,点击后选择只显示可执行目标(Executables)或者相关目标(Relevant Targets);
- 或者右键点击侧边栏空白区域,看看有没有“Filter Targets”相关选项,勾选你想保留的目标类型(比如只留Executables)。
设置后那些辅助目标就会被隐藏,侧边栏只会显示你真正需要构建的程序。
2. 修改CMakeLists.txt标记非核心目标
如果有些自定义的辅助目标(比如你自己写的打包、脚本类目标)不想被展示,可以在CMakeLists里给它们添加属性:
SET_TARGET_PROPERTIES(your_custom_target PROPERTIES EXCLUDE_FROM_ALL TRUE)
这样这个目标就不会被纳入默认构建流程,Qt Creator也会把它从主列表里移除(如果后续需要构建它,还是可以在CMake的完整目标列表里找到)。
3. 升级Qt Creator版本(可选)
如果你的项目允许升级工具链,建议把Qt Creator升到4.8及以上版本。后续版本对CMake目标的展示做了大幅优化,会自动过滤掉clean、install这类内置辅助目标,只展示核心的可执行文件和库目标,从根源上解决这个问题。
内容的提问来源于stack exchange,提问作者Joachim W
相关产品推荐
相关产品推荐

