Debian отказался от поддержки файлов .la; как мне теперь строить?

Фон

Я недавно наткнулся на медиа-сервер fuppes UPnP, и это показалось мне замечательным. Я установил его на своем домашнем сервере и начал использовать его для streamового видео на моем XBox. Он работал очень хорошо, и я был доволен этим. Затем я обновил дистрибутив серверов, и fuppes перестали работать; Теперь я знаю, что это связано с тем, что различные библиотеки обесценились, в частности debian начал сбросить файлы .la libtool из большинства своих пакетов .

Проблема / вопрос

Итак, мой вопрос: как мне теперь строить fuppes, что у меня нет этих файлов .la для libtool? В частности, это мое точное сообщение об ошибке:

/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 Karmic Koala

Я считаю, что Debian отбрасывает файлы .la, потому что это может вызвать проблемы при создании для 32-разрядных и 64-разрядных. Если libtool находит файл .la, у него есть неприятная привычка поместить полный путь к библиотеке в команде link, а иногда это неправильная библиотека (32-разрядная, а не 64-разрядная или наоборот). В Solaris у меня возникла проблема с libtool, который хотел связать /usr/lib/libintl.so вместо /usr/lib/64/libintl.so, потому что он нашел /usr/lib/libintl.la

Вы должны иметь возможность ссылаться без файла .la, указав -logg в строке mumble_LIBADD (замените «mumble» на имя создаваемого пакета) в соответствующем Makefile.am. Если по какой-либо причине компоновщик не может найти библиотеку, вы можете указать путь к ней, добавив что-то вроде этого:

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

Но в этом примере я должен полагать, что / usr / lib находится в пути поиска по умолчанию для библиотек.

К вашему конкретному сообщению об ошибке с sed, я не знаю, почему fuppes использует sed для поиска /usr/lib/libogg.la, но это, можно надеяться, будет исправлено соответствующим изменением вверх по течению от libtool (например, в autoconf или automake). Я подозреваю, что есть что-то в «configure», которое помогает с этой проблемой (например, –with-ogg или что-то еще). Запустите «configure –help» и найдите там какие-то намеки.

Вам не нужны файлы .la. Вы не вставляли важные части вывода команды – какой шаг пытается связать файл libogg.la. Я предполагаю, что это libtool, и я полагаю, что после обновления вы запускаете make в исходном каталоге dir или vcs, не переуступая autogen.sh или настраивая по мере необходимости.

Короче говоря, вы не даете достаточно информации, чтобы помочь вам в дальнейшем (как вы получили fuppes? Как вы его построили? Как вы пытались построить его после обновления?). Скорее всего, вы либо забыли восстановить файлы сборки, либо какой-либо другой шаг компоновщика потянул файл .la и должен быть регенерирован (например, файл pkg-config).