如何在Qt Creator顶级项目中显示子项目文件但不编译该子项目?
解决Qt Creator中子项目可见但不编译的问题
针对你的需求,有两种简单有效的解决办法:
方法一:修改子项目的.pro文件
直接修改sub_project/sub_project.pro,将模板类型设置为aux——这个模板的作用是让qmake仅识别文件但不生成编译规则,具体配置如下:
TEMPLATE = aux HEADERS += files/*.h # 按实际路径填写你的头文件 SOURCES += files/*.cpp # 按实际路径填写你的源文件 # 其他需要显示的文件类型(比如.ui、.qrc)也可按需添加
设置完成后,Qt Creator会把sub_project的文件加载到文件树中,支持全局搜索,但不会对该子项目执行编译操作。
方法二:在顶级项目中配置子项目属性
如果不想修改子项目的.pro文件,可在top_level_project.pro里给sub_project添加no_target配置:
TEMPLATE = subdirs SUBDIRS = \ sub_project # 标记子项目不参与编译 sub_project.CONFIG += no_target
这个配置会告诉qmake不要将sub_project作为编译目标,但Qt Creator依然会解析它的.pro文件,加载所有声明的文件,满足可见和可搜索的需求。
为什么之前的方法无效?
你之前仅保留HEADERS和SOURCES的做法没用,是因为子项目默认的TEMPLATE是app或lib,哪怕没有其他编译配置,qmake还是会生成对应的编译目标,因此子项目依然会被编译。
内容的提问来源于stack exchange,提问作者Zane Phillips
相关产品推荐
相关产品推荐

