dato un file sorgente test.cpp Mi piacerebbe creare una libreria condivisa libtest.so. Sto cercando di farlo nell'ambito di un file di automake, ma non riesco a farlo funzionare.Come creare una libreria condivisa (.so) in uno script di automake?
Per esempio sotto g ++ faccio la seguente:
g++ -shared -fPIC test.cpp -o libtest.so
allora posso creare un altro file che dipenderà la libreria condivisa come segue:
g++ mytest.cpp libtest.so -o blah
Ho letto che automake supporta solo la creazione di librerie condivise tramite libtool. Ho cercato di far funzionare il mio scriupt automake come segue, ma non sembra mai produrre un .so. Il più vicino che ho ottenuto è per di produrre un .la e .o del file:
in configure.ac:
AC_ENABLE_SHARED
AC_DISABLE_STATIC
AC_PROG_LIBTOOL(libtool)
in Makefile.am
lib_LTLIBRARIES=libtest.la
libtest_la_SOURCES=test.cpp
libtest_la_CFLAGS=-fPIC
libtest_la_CPPFLAGS=-fPIC
libtest_la_CXXFLAGS=-fPIC
libtest_la_LDFLAGS= -shared -fPIC
Potrebbe qualcuno dammi un esempio di costruzione di un .so basato su quanto sopra?
È necessario sostituire AC_PROG_LIBTOOL con LT_INIT –
Bah ... dopo aver scritto questo ho capito che quanto sopra ha effettivamente creato il file .so in una directory .libs nascosta della mia directory di origine. Speriamo che questo aiuti qualcun altro che si meraviglia di questo. – skimon
Qualcuno può pubblicare qui gli esempi completi dei file? Non i file di origine, ma configure.ac e Makefile.am. Non riesco a farlo funzionare utilizzando le informazioni in questa discussione. –