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

如何从Meson单仓库(Monorepo)编译单个子项目?

如何在Meson单仓库中仅编译指定子项目

方法1:直接指定子项目的构建目标

  • 进入仓库的构建目录(通常是build)
  • 使用ninja直接指定子项目的具体目标进行编译,比如你修改的是gst-plugins-base子项目里的libgstvideo库,命令如下:
    ninja subprojects/gst-plugins-base/libgstvideo
    
  • 部分项目支持直接指定子项目名称来编译其所有目标,命令更简洁:
    ninja gst-plugins-base
    

方法2:通过配置选项关闭其他子项目

  • 多数成熟的Meson多子项目(比如GStreamer)支持通过配置选项单独启用或关闭子项目
  • 进入构建目录后,重新配置Meson,只保留你需要修改的子项目,关闭其余所有子项目,示例命令:
    meson setup --reconfigure -Dgst-plugins-good=disabled -Dgst-plugins-bad=disabled -Dgst-plugins-ugly=disabled build
    
  • 之后运行ninja就只会编译你保留的子项目,后续修改后直接执行ninja即可

方法3:单独构建目标子项目(临时测试用)

  • 进入目标子项目的目录,比如subprojects/gst-plugins-base
  • 为该子项目单独初始化构建环境:
    meson setup build-local
    
  • 进入单独的构建目录完成编译:
    cd build-local && ninja
    
  • 注意:这种方式需要处理子项目的依赖问题,如果该子项目依赖仓库内其他子项目的库,需要先确保依赖已编译完成,或者通过--prefix参数指定依赖的安装路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:32:42