come fare una biblioteca con libtool se ci sono fonti con lo stesso nome in diverse directory

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

Domanda

Sto cercando di compilare una libreria utilizzando libtool. Il problema è che ho diversi file di origine con lo stesso nome in diverse directory. A causa della che, nel corso autoreconf, libtoolize tiri errori a me.

In sostanza, il mio layout del filesystem è la seguente:

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

Il Makefile.am viene inserito nella src / directory e viene chiamato dal principale Makefile.am utilizzando SUBDIRS = src. I contenuti sono simili a quanto segue:

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

Tuttavia, quando si fa autoreconf, ottengo un errore:

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

Come risolvere questo? Suppongo che dovrò aggiungere un Makefile.am in ciascuna delle subdiectories. Come fare esattamente questo? Google non ha aiutato a trovare la soluzione.

È stato utile?

Soluzione 2

La soluzione è quella di creare librerie di convenienza libtool (li prefisso noinst in modo che non saranno installati) in ogni sottodirectory e poi collegarli alla libreria condivisa finale.

Altri suggerimenti

Anche se fate che lavoro nel sistema di compilazione, la libreria statica sarà ancora parti del codice come mancanti ar sovrascrive felicemente membri dell'archivio con lo stesso nome.

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