Debian 放弃了对 .la 文件的支持;我现在如何构建?
Posted
技术标签:
【中文标题】Debian 放弃了对 .la 文件的支持;我现在如何构建?【英文标题】:Debian dropped support for .la files; how do I build now? 【发布时间】:2009-11-03 02:40:42 【问题描述】:背景
我最近遇到了fuppes UPnP media server,它看起来很棒。我将它安装在我的家庭服务器上并开始使用它将视频流式传输到我的 Xbox。它工作得非常好,我很满意。然后我升级了我的服务器分发和 fuppes 停止工作;我现在知道这是因为各种库都贬值了,特别是debian has started dropping the .la libtool files from the majority of their packages。
问题/疑问
所以我的问题是,既然我没有那些用于 libtool 的 .la 文件,我该如何构建 fuppes?更具体地说,这是我的确切错误消息:
/bin/sed: can't read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la' is not a valid libtool archive
我没有 /usr/lib/libogg.la 文件了。这从终端证明了这一点:
# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#
我只需要指出正确的方向。我已经阅读了 libtool-automake 文档,但我仍然缺少那条告诉我如何编译的信息,因为我不再有 libogg.la 了。那么简而言之,在没有 .la 文件的情况下如何编译呢?
注意这一切都在 Ubuntu Karmic Koala 上
【问题讨论】:
【参考方案1】:我相信 Debian 一直在删除 .la 文件,因为当您同时构建 32 位和 64 位时,它可能会导致问题。如果 libtool 找到一个 .la 文件,它有一个讨厌的习惯,就是将库的完整路径放在链接命令中,这有时是错误的库(32 位而不是 64 位,反之亦然)。在 Solaris 上,我遇到了 libtool 想要链接 /usr/lib/libintl.so 而不是 /usr/lib/64/libintl.so 的问题,这一切都是因为它找到了 /usr/lib/libintl.la
您应该能够通过在适当的 Makefile.am 中的 mumble_LIBADD 行(将“mumble”替换为您正在构建的包的名称)上指定 -logg 来在没有 .la 文件的情况下进行链接。如果由于某种原因链接器找不到库,您可以通过添加如下内容来指定它的路径:
mumble_LDFLAGS = -R/usr/lib -L/usr/lib
但在这个例子中,我必须相信 /usr/lib 在库的默认搜索路径中。
对于您使用 sed 的特定错误消息,我不知道为什么 fuppes 使用 sed 来查找 /usr/lib/libogg.la,但这可能会通过 libtool 上游的适当更改(例如在 autoconf 或 automake 中)来解决)。我怀疑“配置”中的某处有一个有助于解决此问题的开关(例如 --with-ogg 或其他东西)。运行“configure --help”并在那里寻找一些提示。
【讨论】:
是的,这实际上是我自己发现的。我只是忘了回到这里并自己发布答案。我实际上还有一件事要补充。我使用的是 Ubuntu karmic Koala,它们是 Debian 之后的一个版本。我怀疑在软件包的 Debian 版本中,这个问题已经得到修复(也许配置也需要清理)。所以我想我会等待下一个版本。感谢您的全面回答。 是的,这确实已在 lucid 中修复。我查过了,现在在这里让大家知道。【参考方案2】:您不应该需要 .la 文件。您没有粘贴命令输出的重要部分 - 尝试链接到 libogg.la 文件的步骤。我的猜测是 libtool,我的猜测是升级后你在源目录或 vcs checkout 中运行 make,而无需重新运行 autogen.sh 或根据需要配置。
简而言之,您没有提供足够的信息来进一步帮助您(您是如何获得 fuppes 的?您是如何构建它的?升级后您是如何尝试构建它的?)。很可能您忘记重新生成构建文件,或者其他链接器步骤正在拉入 .la 文件并需要重新生成(例如,pkg-config 文件)。
【讨论】:
以上是关于Debian 放弃了对 .la 文件的支持;我现在如何构建?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Rails4 放弃了对 Gemfile 中“资产”组的支持