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

Slackware更新后libtool找不到libfontconfig.la问题排查求助

Slackware更新后编译项目的libtool错误排查与解决

问题背景

更新Slackware后编译项目时触发如下错误:

libtool:   error: cannot find the library '/usr/lib64/libfontconfig.la' or unhandled argument '/usr/lib64/libfontconfig.la'

项目本身不生成静态库,且Slackware已移除系统中的.la文件。


问题1:如何定位依赖libfontconfig.la的部分?原因是什么?

排查方法

  1. 先排查项目本地文件:检查项目根目录及src/下的Makefile、pkgconfig配置文件,确认是否直接引用libfontconfig.la;
  2. 若本地无直接引用,使用libtool --debug命令重新编译,通过调试输出追踪依赖调用链。

原因分析

本例中,依赖来自系统库/usr/lib64/libgnomecanvas-2.la的dependency_libs字段——旧的.la文件会记录依赖的其他.la文件路径,而Slackware更新后清理了libfontconfig.la,导致libtool解析依赖时找不到文件报错。


问题2:是否应该调用libtool?

如果项目不需要libtool的特殊功能(比如跨平台静态库构建、版本化库管理),可以不调用libtool:

  • 若项目用autotools构建,可修改configure.ac或Makefile.am,跳过libtool调用,直接使用-lfontconfig这类标准链接参数完成编译;
  • 临时应急方案:手动编辑/usr/lib64/libgnomecanvas-2.la,删除dependency_libs中涉及libfontconfig.la的条目,替换为-lfontconfig。注意此方法是临时的,系统库更新后会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:27:09