安装libjpeg-turbo(>=2.0.0)并在meson中正常使用的解决方案
libjpeg-turbo ≥2.0.0 配合 Meson 使用解决方案
方案一:使用已安装的官方deb包
你安装的libjpeg-turbo-official deb包默认将pkg-config配置文件安装在/opt/libjpeg-turbo/lib/pkgconfig路径下,系统默认pkg-config搜索路径不包含该目录,因此会抛出找不到.pc文件的错误,按以下步骤修复即可:
- 首先确认配置文件路径,执行命令:
find /opt -name "libjpeg.pc"
正常输出应为/opt/libjpeg-turbo/lib/pkgconfig/libjpeg.pc - 编译前设置PKG_CONFIG_PATH环境变量:
export PKG_CONFIG_PATH=/opt/libjpeg-turbo/lib/pkgconfig:$PKG_CONFIG_PATH
如需永久生效,可将上述命令添加到~/.bashrc或~/.zshrc配置文件中,重启终端后生效 - 直接使用原有配置即可正常识别依赖:
jpg_dep = dependency('libjpeg', version: '>= 2.0.0', required: true)
方案二:使用Meson Wrap子项目方式
你之前的配置错误点在于直接读取dependency_names变量,该变量仅为wrap文件中声明的依赖名称列表,并非可直接使用的依赖对象,按以下方式修改配置即可:
- 确认已执行过wrap安装命令:
meson wrap install libjpeg-turbo,项目subprojects目录下存在libjpeg-turbo.wrap文件 - 修改meson配置为:
libjpeg_sp = subproject('libjpeg-turbo') # 基础libjpeg接口依赖 jpg_dep = libjpeg_sp.get_variable('jpeg_dep') # 如需使用turbo专属扩展接口,额外声明下面的依赖即可 # turbojpg_dep = libjpeg_sp.get_variable('turbojpeg_dep')
该方式无需提前在系统中安装libjpeg-turbo,meson会在编译阶段自动拉取对应版本源码编译,适配所有系统环境。
内容的提问来源于stack exchange,提问作者Aaanda1
相关产品推荐
相关产品推荐

