Frage

Ich versuche ein Programm zu kompilieren, das die Festivalbibliothek verwendet.

Grundsätzlich müssen Sie die Header-Verzeichnisse des Festivals und estools in den Include-Pfad aufnehmen und beide Bibliothekspfade einschließen.

Bei einer normalen Installation bleiben sie einfach in ihren eigenen Ordnern, sodass Sie haben

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

als erforderlicher Suchpfad und

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

als Bibliothekspfad.

Ich denke, dass der richtige Weg, dies zu handhaben, eine Konfigurationsoption "--with-estools" und "--with-Festival" ist.

Es gibt jedoch ein anderes Setup, wenn es auf einem Debian / Ubuntu-System installiert ist. Ich möchte in der Lage sein, dieses Setup zu handhaben, bei dem die Suchpfade sind

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

und der Suchpfad ist nur

/usr/lib

Ich möchte den zweiten Fall erkennen und automatisch behandeln, während der Benutzer weiterhin die ersten beiden Verzeichnisse angeben muss, wenn der zweite Fall nicht erfüllt ist.Wie würde ich das machen?

War es hilfreich?

Lösung

Gibt es etwas, das Einstellungsoptionen wie diese ausschließen würde?

  1. --festival-Includes mit einem Standardwert (falls nicht festgelegt) für / usr / include / Festival

  2. --festival-libs mit einem Standardwert (falls nicht festgelegt) für /usr/lib/libfestival.XXX

    Gleiches gilt für Estools.

Andere Tipps

Der Paketbetreuer muss sich überhaupt nicht um diese Details kümmern.Es liegt in der Verantwortung des Benutzers.Wenn der Benutzer eine Bibliothek an einem nicht standardmäßigen Speicherort installiert hat, muss er LDFLAGS= -L / path / to / lib zu einer CONFIG_SITE-Datei oder zu jedem Aufruf von configure hinzufügen oder diesen Pfad in den Suchpfad des Compilers einfügeneinige systemabhängige Mechanismen.Ebenso sollte der Benutzer -I / path / to / include an CPPFLAGS anhängen.

Mit anderen Worten, Debian macht das Richtige, indem es einfach die Bibliotheken und Header am Standardspeicherort installiert.Jeder, der die Bibliotheken an einem nicht standardmäßigen Ort installiert, gibt sich mehr Arbeit.Es liegt nicht in Ihrer Verantwortung, ihre Fehler zu beheben.

Das Hinzufügen von Optionen wie --with-Festival oder --with-Festival-Headern ist nicht hilfreich.Der Benutzer kann LDFLAGS und CPPFLAGS genauso einfach zuweisen, und diese Variablen sind standardisiert.

Einige Plattformen haben den Dateisystem-Heirarchy-Standard übernommen - http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard.

Dies sollte sich wirklich in der Autokonfiguration widerspiegeln, anstatt darauf zu bestehen, dass der Benutzer sich durch Festlegen von CFLAGS damit befasst, da / opt / openssl / lib kein "nicht standardmäßiger" Speicherort mehr ist.

Das FHS gibt außerdem an, dass / usr / local eine "Tertiäre Hierarchie für lokale Daten, die für diesen Host spezifisch ist" ist.Also sollte / opt wirklich zuerst überprüft werden.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top