Debian a supprimé le support pour les fichiers .la; comment puis-je construire maintenant?

StackOverflow https://stackoverflow.com/questions/1664921

  •  13-09-2019
  •  | 
  •  

Question

Historique

Je suis récemment tombé sur le fuppes serveur multimédia UPnP et il semblait grand. Je l'ai installé sur mon serveur domestique et a commencé à l'utiliser pour diffuser de la vidéo à mon XBox. Il a travaillé vraiment très bien et je suis content. Ensuite, je mis à jour la distribution mes serveurs et fuppes cessé de travailler; Je sais maintenant que c'est parce que les différentes bibliothèques se sont dépréciées, plus spécifiquement debian a commencé laissant tomber le .la libtool de la majorité de leurs paquets .

Problème / Question

Alors, ma question est, comment puis-je construire fuppes maintenant que je n'ai pas ces fichiers .la pour libtool? Plus précisément, c'est mon exact message d'erreur:

/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

Je n'ai pas un fichier /usr/lib/libogg.la plus. Ce qu'il prouve à partir du terminal:

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

Je dois juste être pointé dans la bonne direction vraiment. J'ai lu les documents libtool-automake, mais il me manque encore cette information qui me dit comment compiler maintenant que je n'ai pas libogg.la plus. Donc en bref, comment puis-je compiler en l'absence de fichiers .la?

N.B.. Tout cela est sur Koala Ubuntu Karmic

Était-ce utile?

La solution

Je crois que Debian a diminué les fichiers .la car il peut causer des problèmes lorsque vous construisez pour les 32 bits et 64 bits. Si libtool trouve un fichier .la, il a une mauvaise habitude de mettre le chemin complet à la bibliothèque dans la commande de lien, ce qui est parfois la mauvaise bibliothèque (32 bits au lieu de 64 bits ou vice-versa). Sur Solaris, j'ai eu un problème de libtool vouloir relier la place /usr/lib/libintl.so de /usr/lib/64/libintl.so, parce qu'elle a trouvé /usr/lib/libintl.la

Vous devriez être en mesure de lier sans le fichier .la en spécifiant -logg sur la ligne mumble_LIBADD (remplacer « Mumble » avec le nom du package que vous construisez) dans le Makefile.am approprié. Si pour une raison quelconque l'éditeur de liens ne peut pas trouver la bibliothèque, vous pouvez spécifier un chemin d'accès en ajoutant quelque chose comme ceci:

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

Mais dans cet exemple, je dois croire que / usr / lib est dans le chemin de recherche par défaut pour les bibliothèques.

Pour votre message d'erreur particulière avec sed, je ne sais pas pourquoi fuppes utilise sed pour trouver /usr/lib/libogg.la, mais cela peut nous l'espérons être fixé par un changement approprié en amont de libtool (comme dans autoconf ou automake ). Je pense qu'il ya un interrupteur quelque part dans « configure » qui aide à cette question (comme --with-ogg ou quelque chose). Exécutez « configure --help » et chercher des conseils là-bas.

Autres conseils

Vous ne devriez pas avoir besoin des fichiers .la. Vous ne l'avez pas coller les parties importantes de la sortie de commande - quelle étape tente de créer un lien vers le fichier libogg.la. Je suppose libtool, et je suppose que, après la mise à niveau que vous utilisez faire dans votre source checkout dir ou VCS, sans réexécuter autogen.sh ou configurer selon le cas.

En bref, vous ne donnez pas assez d'informations pour vous aider davantage (Comment avez-vous fuppes? Comment avez-vous construire? Comment avez-vous essayé de le construire après la mise à niveau?). Très probablement, soit vous avez oublié de se régénérer, créer des fichiers ou une autre étape de liaison est un fichier tire dans .la et doit être régénéré (par exemple, un fichier-config pkg).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top