Libtool认为“库已移动”,但实际上并非如此。

14

我目前正在从源代码重新编译gtk+和依赖项(没有其他选择)。

所有我的自定义软件包都安装在特定的自定义路径中(我们称之为/packages)(这可能看起来很奇怪,但这次我确实没有其他选择)。

当我尝试重新编译pango时,它需要freetype。 Freetype已经安装在/packages/freetype/2.1.10/amd64-linux中(库、包含文件等都在此目录中),并且不同的配置路径被设置好了(LD_LIBRARY_PATHLIBRARY_PATHCPLUS_INCLUDE_PATHINCLUDE_PATHPKG_CONFIG_PATH)。 配置pango运行良好。它发现了freetype并生成了Makefile。 当我尝试make时,我得到以下错误:

libtool: link: warning: library `/packages/freetype/2.1.10/amd64-linux//lib/libfreetype.la' was moved.
grep: /usr/local/lib/libfreetype.la: No such file or directory

libtool在处理我的库时出了问题(但是/packages/freetype/2.1.10/amd64-linux//lib/目录下存在libfreetype.la文件,且没有访问问题)。因此,libtool会尝试在“经典位置”(如/usr/...)中查找,但找不到。

起初,我以为是由于编译freetype过程中--prefix选项的错误导致libtool混淆了两个斜杠,所以我重新编译了freetype,去掉了错别字,但结果并没有改变。

有人有什么想法来帮助我吗?我以前从未在我的个人项目中使用过libtool,因此不知道是否有解决这种奇怪行为的方法...(也许无关紧要,但libtool的版本是1.5.22)

提前致谢。

1个回答

15

你有没有查看过libfreetype.la文件? Libtool的.la文件只是描述库的文本文件。默认情况下,它们被注释掉了。搜索libdirdependency_libs设置,并检查它们是否指向正确的位置。


1
感谢您的帮助!通过手动检查所有依赖项的.la文件,我成功地解决了问题,将/usr/local/lib/libfreetype.la的出现替换为正确的文件。我不知道.la文件只是用于链接的“配置”文件... - ThR37

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接