如何将自行编译的Meson项目作为另一项目的构建依赖
问题根因
Meson通过pkg-config查找gedit依赖时,默认仅扫描系统标准pkgconfig路径,你自行编译安装到/opt的gedit生成的gedit.pc配置文件在/opt下的pkgconfig目录,不在默认扫描路径中,因此检测失败。你之前设置的LIBRARY_PATH仅用于编译链接阶段查找库文件,不影响pkg-config的扫描逻辑,所以无效。
解决步骤
- 第一步:确认
gedit.pc的存储路径
执行命令:
Fedora 64位环境下一般返回结果为find /opt -name "gedit.pc"/opt/lib64/pkgconfig/gedit.pc,对应的pkgconfig扫描路径就是/opt/lib64/pkgconfig,32位环境则对应/opt/lib/pkgconfig。 - 第二步:执行meson配置时指定
PKG_CONFIG_PATH环境变量
替换之前的meson命令为:
注意将路径替换为你第一步查到的实际路径即可。PKG_CONFIG_PATH="/opt/lib64/pkgconfig" meson --prefix /opt
可选补充操作
如果后续编译完成后运行gedit或插件时提示找不到libgedit相关动态库,可以在运行前添加LD_LIBRARY_PATH环境变量:
LD_LIBRARY_PATH=/opt/lib64 /opt/bin/gedit
如果需要永久生效,可将/opt/lib64路径写入/etc/ld.so.conf.d/gedit-custom.conf,再执行sudo ldconfig刷新缓存即可。
内容的提问来源于stack exchange,提问作者Eric Stdlib
相关产品推荐
相关产品推荐

