背景
我最近遇到了fuppes UPnP媒体服务器 ,它似乎很大。 我安装了它在我的主服务器上,并用它来视频传输至我的Xbox开始。 它的工作真的非常好,我很高兴。 然后我升级我的服务器分布和fuppes停止工作; 现在我知道,这是因为各个库已大幅贬值,最具体的Debian已经开始从他们的大部分包丢弃.la libtool的文件 。
该问题/疑问
所以我的问题是,我现在该如何建立fuppes,我没有为这些的libtool文件.la? 更具体地讲,这是我确切的错误信息:
/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文件的编制?
NB这是所有在Ubuntu业报考拉
我相信,Debian的不断下降的.la文件,因为它可以在您正在为32位和64位导致的问题。 如果libtool的找到.la文件,它把完整路径库的链接命令的坏习惯,而这有时是错误的库中(32位而不是64位,反之亦然)。 在Solaris上,我不得不想的libtool联系起来,而不是/usr/lib/64/libintl.so /usr/lib/libintl.so的问题,都是因为它发现/usr/lib/libintl.la
你应该能够在无.la文件链接通过在mumble_LIBADD行指定-logg(替换“嗯嗯”你正在构建的包的名称)的合适的Makefile.am内。 如果由于某种原因链接器找不到库,你可以通过添加像这样指定它的路径:
mumble_LDFLAGS = -R / usr / lib中-L / usr / lib中
但是,在这个例子中,我不得不相信,/ usr / lib目录是在库的默认搜索路径。
与SED您的特定错误信息,我不知道为什么fuppes使用SED找/usr/lib/libogg.la,但这可能希望通过适当的变化是固定的上游的libtool(像的autoconf或automake的)。 我猜想,有一个在“配置”的地方一个开关,这个问题(如--with-OGG什么的)帮助。 运行“configure --help”,并寻找一些线索那里。
你不应该需要的.la文件。 你没有粘贴命令输出的重要组成部分 - 哪一步试图链接到libogg.la文件。 我的猜测是libtool的,我的猜测是,升级后你正在运行在您的源代码目录或VCS结账,无需重新运行autogen.sh或根据需要进行配置。
总之,你不给足够的信息来帮助您进一步(你怎么fuppes?你是如何建立的?你是怎样尝试升级后建了吗?)。 最有可能要么你忘了重新构建文件,或其他一些连接步骤是在.la文件拉动,需要再生(例如,以pkg-config文件)。