虽然我很少创建静态库,但更新 Slackware 后,我收到以下错误:
libtool: error: cannot find the library '/usr/lib64/libfontconfig.la' or unhandled argument '/usr/lib64/libfontconfig.la'
该项目不创建库。 Slackware 还删除了 .la 文件。
问:我如何找出需要程序的哪一部分
libfontconfig.la
?为什么?
问:是否应该调用
libtool
?
对于你的第一个问题,确凿的证据是
unhandled argument '/usr/lib64/libfontconfig.la'
- 这意味着在你的 Makefile 中的某个地方,出现了字符串 /usr/lib64/libfontconfig.la
。看来您的项目直接或间接依赖于 fontconfig 库。我用来追踪这一点的步骤是:
Makefile
,找到哪个变量被分配了字符串 libfontconfig.la。可能是这样的BLAH_LIBS = ${libdir}/libfontconfig.la
PKG_CHECK_MODULES([BLAH], [blah])
所示,“查找包“blah”,并从其 blah.pc 文件中,使用前缀 BLAH 和后缀 _LIBS 和 _CFLAGS 构造 BLAH_LIBS
和 BLAH_CFLAGS
变量,以及在 Makefile 中出现 @BLAH_LIBS@
和 @BLAH_CFLAGS@
的地方替换它们'Libs:
行。该错误位于包
blah
中,特别是文件 /lib/pkgconfig/blah.pc
或类似文件中。它应该是 -lfontconfig 而不是“libfontconfig.la”
对于你的第二个问题,我同意如果你的程序不创建共享库或静态库,那么它根本不需要使用libtools。