So erstellen Sie eine Bibliothek mit Libtool, wenn es Quellen mit demselben Dateinamen in mehreren Verzeichnissen gibt

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

Frage

Ich versuche, eine Bibliothek mit Libtool zu kompilieren. Das Problem ist, dass ich in mehreren Verzeichnissen mehrere Quelldateien mit demselben Dateinamen habe. Aufgrund dessen wirft Libtoolize während des AutoreConf Fehler auf mich.

Grundsätzlich lautet mein Dateisystemlayout wie folgt:

src/
    Makefile.am
    file.cpp
    dir1/
        file.cpp
        ...
    dir2/
        file.cpp
        ...

Das Makefile.am wird im SRC/ Verzeichnis platziert und von der Hauptmakefile.am verwendet SUBDIRS = src. Der Inhalt ähnelt wie folgt:

libfoo_la_SOURCES =    \
    file.cpp        \
    dir1/file.cpp   \
    dir2/file.cpp   \
    ...

Bei AutoreConf erhalte ich jedoch einen Fehler:

src/Makefile.am: object `file.lo' created by `dir1/file.cpp' and `file.cpp'

Wie löst ich das? Ich nehme an, dass ich in jedem der Unterableitungen ein Makefile.am hinzufügen muss. Wie mache ich das genau? Google hat nicht geholfen, die Lösung zu finden.

War es hilfreich?

Lösung 2

Die Lösung besteht darin, Convenience -Libtool -Bibliotheken zu erstellen (Präfix für sie, damit sie nicht installiert werden) in jedem Unterverzeichnis und dann mit der endgültigen gemeinsam genutzten Bibliothek verknüpft.

Andere Tipps

Auch wenn Sie diese Arbeit im Build -System machen, fehlt der statischen Bibliothek Teile des Codes als ar Überschreiben Sie glücklich Archivmitglieder mit demselben Namen.

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