Meson配置buildtype=plain后仍出现默认cflags问题如何解决
Meson buildtype=plain仍存在默认编译参数的解决方案
Meson 0.55.3版本的buildtype=plain仅会禁用Meson自身基于构建类型预设的优化、调试类标记,不会自动清除交叉配置文件、工具链内置、子项目硬编码的编译参数,可通过以下步骤解决:
- 优先修改交叉编译文件配置
打开你的qnx7.meson文件,在[built-in options]区块下显式指定空的编译/链接参数,示例配置如下:
[built-in options]
buildtype = 'plain'
c_args = []
cpp_args = []
c_link_args = []
cpp_link_args = []
- 配置命令追加全局参数覆盖
如果修改交叉文件不生效,可以在执行配置命令时直接传入空参数,优先级高于交叉文件配置,命令如下:meson project/builddir --cross-file qnx7.meson --buildtype=plain -Dc_args= -Dcpp_args= -Dc_link_args= -Dcpp_link_args= - 子项目单独覆盖参数
如果部分子项目在自身meson.build中通过add_global_arguments等接口硬编码了编译参数,可以在配置时针对对应子项目单独指定空参数,格式为-D<子项目名称>:c_args=,例如子项目名称为utils,对应参数为-Dutils:c_args= - 验证生效配置
配置完成后进入构建目录执行meson configure命令,即可查看当前所有生效的编译参数,确认冗余默认参数已被清除。
内容的提问来源于stack exchange,提问作者Mariano
相关产品推荐
相关产品推荐

