Domanda

Essendo perfettamente soddisfatto con il vecchio stile Makefiles, Cerco una semplice alternativa a libtool. Non voglio passare a automake, e continuo a correre in problemi con libtool quando cerco di usarlo direttamente. Il più recente è 'proprietà hardcode non supportate', e sto stufarsi con la mancanza di documentazione completa che appena mi dice che cosa è sbagliato questa volta ...

Ho solo voglia di compilare un gruppo di .o file con le bandiere a destra e poi collegarli in una libreria condivisa, in modo tale che funziona sul maggior numero di piattaforme possibili. C'è qualcosa là fuori che fa proprio questo non mi e la forza di cambiare tutti i miei altri strumenti allo stesso tempo?

È stato utile?

Soluzione

Non c'è jlibtool (che non ha nulla a che fare con Java).

E 'scritto in C, e può solo essere fornito in bundle con la vostra fonte.

In origine era un apache progetto , ma chi stava lavorando esso ci sembra di abbandonato intorno al 2004.

E 'stata rilevata da FreeRADIUS progetto manutentore Alan Dekok, che ha modernizzato il codice e fissato alcuni problemi fastidiosi. L'usiamo per il progetto FreeRADIUS (> = 3.0.0) per fare tutto il tempo di costruzione di collegamento.

Altri suggerimenti

Non sicuro se si adatterebbe informazioni del flusso di lavoro, ma io consiglierei di guardare CMake . Funziona su Windows, Linux e Mac e non si deve costringere a cambiare le tue altri strumenti. Dovrete giudicare la sua idoneità da soli però.

Data la tua descrizione nel commento alla risposta Milliams',

  

voglio solo uno strumento che dico: "dammi i flag di compilazione in modo che possa compilare questi file n per l'uso in una libreria condivisa, e poi mi danno i comandi per collegarli tra loro",

poi libtool potrebbe essere lo strumento più semplice per il lavoro. Non conosco nessun altra alternativa.

Hai ragione che la documentazione per l'utilizzo di libtool con makefile pianura è praticamente inesistente, ma Libtool certamente non richiede di passare a automake. librerie multipiattaforma sono difficili, e il prezzo che devi pagare per loro è libtool. (O forse il prezzo di sconto è libtool + automake + autoconf o CMake o marmellata.)

slibtool (dl.midipix.org/slibtool, git: //midipix.org/slibtool) è un libtool rimpiazzo, scritto in C. A scopi singolo slibtool binari senza sostenere sia nativi e cross-build, e l'utilità fornisce anche alcune funzionalità aggiuntive (installazione di .la file è facoltativo, opzionale annotazione codice colore, ecc). Il seguente makefile pianura minime dimostra come (cross) costruire una libreria utilizzando slibtool.

CC      = cc
LIBTOOL = slibtool
DESTDIR = destdir

all:    libfoo.la

a.lo:
    $(LIBTOOL) --mode=compile --tag=CC $(CC) -c a.c

libfoo.la: a.lo
    $(LIBTOOL) --mode=link --tag=CC $(CC) -o libfoo.la -rpath /lib

install: all
    mkdir -p destdir
    $(LIBTOOL) --mode=install cp libfoo.la $(DESTDIR)

# the -rpath argument is required for semantic compatibility with libtool.

compilazione nativa, di default (sia libreria condivisa e libreria statica)

$ make
$ make install

compilazione nativa, libreria condivisa solo

$ make LIBTOOL=slibtool-shared
$ make install

compilazione nativa, libreria statica solo

$ make LIBTOOL=slibtool-static
$ make install

cross-compilazione, di default

$ make CC=some-target-tuple-gcc
$ make install

cross-compilazione, di default, con un sacco di colori

$ make LIBTOOL=dlibtool CC=some-target-tuple-gcc
$ make install
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top