Domanda

Sto cercando di compilare un programma che utilizzi la libreria del festival.

Fondamentalmente, i requisiti sono che tu includa le directory di intestazione festival e estools nel percorso di inclusione e includi entrambi i loro percorsi di libreria.

In un'installazione normale, rimangono semplicemente nelle loro cartelle, quindi hai

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

come percorso di ricerca richiesto e

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

come percorso della libreria.

Penso che il modo corretto per gestirlo sia con un'opzione di configurazione "--with-estools" e "--with-festival".

Tuttavia, c'è una configurazione diversa quando è installato su un sistema debian / ubuntu. Mi piacerebbe essere in grado di gestire questa configurazione, dove si trovano i percorsi di ricerca

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

e il percorso di ricerca è solo

/usr/lib

Vorrei rilevare il secondo caso e gestirlo automaticamente, richiedendo comunque all'utente di specificare le prime due directory se il secondo caso non è soddisfatto.Come potrei farlo?

È stato utile?

Soluzione

C'è qualcosa che preclude l'impostazione di opzioni del genere?

  1. --festival-includes con un valore predefinito (se non impostato) su / usr / include / festival

  2. --festival-libs con un valore predefinito (se non impostato) su /usr/lib/libfestival.XXX

Lo stesso vale per gli estool.

Altri suggerimenti

Non è necessario che il manutentore del pacchetto si preoccupi di questi dettagli;è responsabilità dell'utente.Se l'utente ha installato una libreria in una posizione non standard, l'utente deve aggiungere LDFLAGS= -L / path / to / lib a un file CONFIG_SITE o ad ogni invocazione di configure o inserire quel percorso nel percorso di ricerca del compilatore attraversoqualche meccanismo dipendente dal sistema.Allo stesso modo, l'utente deve aggiungere -I / path / to / include a CPPFLAGS.

In altre parole, Debian sta facendo la cosa giusta semplicemente installando le librerie e gli header nella posizione standard.Chiunque scelga di installare le librerie in una posizione non standard si sta dando più lavoro.Non è tua responsabilità correggere i loro errori.

Aggiungere opzioni come --with-festival o --with-festival-headers non è utile;l'utente può assegnare altrettanto facilmente a LDFLAGS e CPPFLAGS e tali variabili sono standardizzate.

Alcune piattaforme hanno adottato il Filesystem Heirarchy Standard - http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Questo dovrebbe davvero riflettersi in autoconf, invece di insistere sul fatto che l'utente dovrebbe gestirlo impostando CFLAGS, perché / opt / openssl / lib non è più una posizione "non standard".

L'FHS specifica anche che / usr / local è una "gerarchia terziaria per i dati locali, specifica per questo host".Quindi, probabilmente, / opt dovrebbe essere controllato per primo.

Altro su FHS / opt -> http://www.pathname.com / fhs / pub / fhs-2.3.html # OPTADDONAPPLICATIONSOFTWAREPACKAGES

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top