Question

J'essaie de compiler un programme qui utilise la bibliothèque du festival.

Fondamentalement, les exigences sont que vous incluez le festival et Répertoires d'en-tête d'Estools dans le chemin d'inclusion, et vous incluez à la fois leurs chemins de bibliothèque.

Dans une installation normale, ils restent simplement dans leurs propres dossiers, donc vous avez

/some/path/festival/src/include 
/some/other/path/estools/include

comme le chemin de recherche requis, et

/some/path/festival/src/lib
/some/other/path/estools/lib

comme chemin de la bibliothèque.

Je pense que la bonne façon de gérer cela est avec une option de configuration "--avec-élaboration" et une option de configuration "--avec-festival".

Cependant, il y a une configuration différente lorsqu'elle est installée sur un système Debian / Ubuntu. J'aimerais pouvoir gérer cette configuration, où se trouvent les chemins de recherche

/usr/include/festival
/usr/include/estools

Et le chemin de recherche est juste

/usr/lib

Je voudrais détecter le deuxième cas et le gérer automatiquement, tout en obligeant l'utilisateur à spécifier les deux premiers répertoires si le deuxième cas n'est pas satisfait. Comment pourrais-je faire cela?

Était-ce utile?

La solution

Y a-t-il quelque chose qui empêcherait des options de définition comme ainsi?

  1. - Festival comprend une valeur par défaut (si unset) à / usr / inclure / festival

  2. --festival-libs avec une valeur par défaut (si unset) à /usr/lib/libfestival.xxx

Il en va de même pour les Osools.

Autres conseils

Il n'est pas nécessaire que le mainteneur de colis de s'inquiéter de ces détails; Il est de la responsabilité de l'utilisateur. Si l'utilisateur a installé une bibliothèque dans un emplacement non standard, l'utilisateur doit ajouter ldflags = -l / path / to / lib dans un fichier config_site ou à chaque invocation de configurer ou de mettre ce chemin dans le chemin de recherche du compilateur dans un mécanisme dépendant du système. De même, l'utilisateur doit ajouter -i / path / vers / inclure à cppflags.

En d'autres termes, Debian fait la bonne chose en installant simplement les bibliothèques et les en-têtes à l'emplacement standard. Quiconque choisit d'installer les bibliothèques dans un emplacement non standard se donne plus de travail. Ce n'est pas votre responsabilité de réparer leurs erreurs.

L'ajout d'options comme - avec-festival ou - avec-festival-t-t-t-t-thers n'est pas utile; L'utilisateur peut tout aussi bien attribuer aux LDFLAGS et CPPFLAG, et ces variables sont standardisées.

Certaines plateformes ont adopté la norme de l'héirarchie du système de fichiers - http://en.wikipedia.org/wiki/filesystem_hierarchy_standard .

Cela devrait vraiment être reflété dans AutoConF, au lieu d'insister sur le fait que l'utilisateur doit y faire face en définissant CFLAGS, car / opt / openssl / lib n'est plus un emplacement "non standard".

Le FHS spécifie également que / usr / local est une «hiérarchie tertiaire pour les données locales, spécifique à cet hôte». Donc, sans doute, / opt devrait vraiment être vérifié en premier.

Plus sur FHS / OPT -> http://www.pathname.com/fhs/pub/fhs-2.3.html#optaddonapplicationsoftwarepackages

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