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

Meson编译C静态库时如何覆盖ar归档工具的默认参数

问题原因

你之前使用link_args参数不生效,是因为该参数仅作用于动态库/可执行文件的链接器(如ld、gcc链接阶段),静态库的归档工具ar的参数不受该配置控制。

正确配置方法

有两种可选方案,根据你的需求选择即可:

方案1:全局修改所有静态库的归档参数

在项目根meson.build的project声明的default_options中添加ar_args配置,直接覆盖默认归档参数:

project(
  'customLog',
  'c',
  version : '1.0.0',
  default_options : ['warning_level=3', 'ar_args=-ru']
)

方案2:仅修改当前静态库的归档参数

如果你不想影响项目中其他静态库的构建,可直接给目标static_library添加ar_args参数(需要Meson版本≥0.55.0):

project_target = static_library(
  meson.project_name(),
  project_source_files,
  install : true,
  c_args : build_args,
  gnu_symbol_visibility : 'hidden',
  include_directories : public_headers,
  # 新增行,单独指定该静态库的ar参数
  ar_args : ['-ru']
)

生效说明

修改配置后必须清理原有构建目录,重新执行meson setup生成构建配置,否则缓存的旧配置不会更新,修改不会生效。重新配置后再执行编译即可看到ar命令的参数已经替换为-ru。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:24:02