如何强制Meson仅使用wrap子项目而非系统已安装库
强制Meson始终使用wrap子项目而非系统库
要让Meson跳过系统已安装库的检查,强制使用subprojects目录下wrap文件定义的子项目,只需修改dependency()调用的参数即可:
修改meson.build中的依赖声明
将原来的依赖声明:
xyz = dependency('xyz')
替换为:
xyz = dependency('xyz', fallback : ['xyz', 'xyz_dep'], force_fallback : true)
参数说明
fallback : ['xyz', 'xyz_dep']:指定子项目名称(xyz,对应subprojects/xyz.wrap)和wrap文件[provide]段定义的依赖别名(xyz_dep),明确Meson要关联的子项目依赖。force_fallback : true:强制Meson完全跳过系统库的检查流程,直接下载、构建并链接wrap定义的子项目,不受系统已安装库的影响。
验证效果
修改完成后,重新执行Meson构建命令刷新配置:
meson setup build --reconfigure
进入构建目录后可确认,Meson已自动下载并构建xyz子项目,主程序编译时会优先链接该子项目的产物,而非系统库。
内容的提问来源于stack exchange,提问作者Piotr Zych
相关产品推荐
相关产品推荐

