Debian放弃了对.la文件的支持;我现在该如何建造? [英] Debian dropped support for .la files; how do I build now?

查看:90
本文介绍了Debian放弃了对.la文件的支持;我现在该如何建造?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

背景

我最近遇到了 fuppes UPnP媒体服务器,它看起来很棒.我将其安装在家庭服务器上,并开始使用它将视频流式传输到XBox.它真的非常好,我对此感到满意.然后,我升级了服务器分配,fuppes停止了工作.我现在知道这是因为各种库已贬值,尤其是 debian已启动从大多数软件包中删除.la libtool文件..

I recently came across the fuppes UPnP media server and it seemed great. I installed it on my home server and started using it to stream video to my XBox. It worked really really well and I was happy with it. Then I upgraded my servers distribution and fuppes stopped working; I now know that it's because various libraries have depreciated, most specifically debian has started dropping the .la libtool files from the majority of their packages.

问题/问题

所以我的问题是,既然我没有libtool的.la文件,该如何构建fuppes?更具体地说,这是我的确切错误消息:

So my question is, how do I build fuppes now that I don't have those .la files for libtool? More specifically, this is my exact error message:

/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文件.这从终端证明了这一点:

I don't have a /usr/lib/libogg.la file anymore. This proves it from the terminal:

# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#

我只需要指出正确的方向.我已经阅读了libtool-automake文档,但是由于我再也没有libogg.la了,我仍然缺少那条信息告诉我如何编译.简而言之,在没有.la文件的情况下如何编译?

I just need to be pointed in the right direction really. I've read the libtool-automake docs but I'm still missing that piece of information that tells me how to compile now that I don't have libogg.la anymore. So in short, how do I compile in the absence of .la files?

这一切都在Ubuntu Karmic Koala上

N.B. This is all on Ubuntu Karmic Koala

推荐答案

我相信Debian一直在删除.la文件,因为在为32位和64位编译时,它可能会引起问题.如果libtool找到.la文件,则有一个讨厌的习惯,即在链接命令中放入库的完整路径,这有时是错误的库(32位而不是64位,反之亦然).在Solaris上,我遇到了libtool的问题,它希望链接/usr/lib/libintl.so而不是/usr/lib/64/libintl.so,这都是因为它找到了/usr/lib/libintl.la

I believe that Debian has been dropping the .la files because it can cause problems when you're building for both 32-bit and 64-bit. If libtool finds a .la file, it has a nasty habit of putting the full path to the library in the link command, and this is sometimes the wrong library (32-bit instead of 64-bit or vice-versa). On Solaris, I had a problem of libtool wanting to link /usr/lib/libintl.so instead of /usr/lib/64/libintl.so, all because it found /usr/lib/libintl.la

通过在适当的Makefile.am中的mumble_LIBADD行上指定-logg(用正在构建的软件包的名称替换"mumble"),您应该可以不带.la文件进行链接.如果由于某种原因链接器找不到该库,则可以通过添加以下内容来指定其路径:

You should be able to link without the .la file by specifying -logg on the mumble_LIBADD line (replace 'mumble' with the name of the package you're building) within the appropriate Makefile.am. If for some reason the linker can't find the library, you can specify a path to it by adding something like this:

mumble_LDFLAGS = -R/usr/lib -L ​​/usr/lib

mumble_LDFLAGS = -R/usr/lib -L/usr/lib

但是在此示例中,我必须相信/usr/lib在库的默认搜索路径中.

But in this example, I have to believe that /usr/lib is in the default search path for libraries.

对于带有sed的特定错误消息,我不知道为什么fuppes使用sed来查找/usr/lib/libogg.la,但是希望可以通过libtool上游的适当更改来解决此问题(例如在autoconf或automake中) ).我怀疑在配置"中的某处有一个开关可以解决此问题(例如--with-ogg之类的东西).运行'configure --help'并在此处查找一些提示.

To your particular error message with sed, I don't know why fuppes uses sed to find /usr/lib/libogg.la, but this may hopefully be fixed by an appropriate change upstream from libtool (like in autoconf or automake). I suspect that there's a switch somewhere in 'configure' that helps with this issue (like --with-ogg or something). Run 'configure --help' and look for some hints there.

这篇关于Debian放弃了对.la文件的支持;我现在该如何建造?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆