You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可自定义供QMake调用的C++宏并自动传递源文件列表至pro文件

QMake自定义宏及源文件自动配置说明

自定义宏的使用与存储

QMake完全支持用户自定义宏/变量,用法和内置的DEFINES变量一致,根据使用场景有两种存储方式:

  • 仅当前项目使用:直接在*.pro文件中声明即可,例如MY_SOURCES += test.cpp,后续通过$$MY_SOURCES就能调用取值。如果需要拆分配置,也可以单独写在*.pri文件中,在pro文件里通过include(xxx.pri)引入即可生效。
  • 多项目全局复用:可以将公共宏定义存放在项目根目录的.qmake.conf文件中,当前目录树下的所有QMake项目都会自动加载这些宏。

自动传递源文件列表到SOURCES的实现

针对你需要自动更新源文件列表、同步到Makefile的需求,有两种常用方案:

方案1:自动扫描目录源文件

无需手动维护文件列表,用QMake内置的文件扫描函数自动匹配指定路径的源文件:

# 匹配当前目录下所有.cpp文件
SOURCES += *.cpp
# 递归匹配src目录下所有.cpp文件,第二个参数true表示开启递归
SOURCES += $$files(src/*.cpp, true)

方案2:自定义宏统一管理源文件列表

如果需要显式控制纳入编译的文件,可以用自定义宏单独维护列表,后续更新不需要修改主pro文件:

  1. 新建公共配置文件source_config.pri,在里面定义源文件列表宏:
MY_PROJECT_SOURCES += \
    main.cpp \
    mainwindow.cpp \
    utils/fileio.cpp \
    module/network.cpp
  1. 在主pro文件中引入配置并赋值给SOURCES:
include(source_config.pri)
SOURCES += $$MY_PROJECT_SOURCES

如果你的源文件列表是外部工具生成的,可以直接让脚本自动更新source_config.pri里的MY_PROJECT_SOURCES内容,QMake运行时会自动读取最新列表生成Makefile,不需要手动修改pro文件。

内容的提问来源于stack exchange,提问作者Digger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:24:03