dado algún archivo fuente test.cpp Me gustaría crear una biblioteca compartida libtest.so. Estoy tratando de hacer esto dentro del alcance de un archivo automake, pero parece que no puedo hacer que esto funcione.¿Cómo crear una biblioteca compartida (.so) en un script automake?
Por ejemplo, bajo g ++ hago lo siguiente:
g++ -shared -fPIC test.cpp -o libtest.so
entonces puedo crear otro archivo que dependerá de la biblioteca compartida de la siguiente manera:
g++ mytest.cpp libtest.so -o blah
He leído que automake solo admite la creación de bibliotecas compartidas a través de libtool. He intentado hacer que mi scruupt de automake funcione de la siguiente manera, pero nunca parece producir un .so. Lo más cerca que he recibido es para que produzca un .la y .o archivo:
en configure.ac:
AC_ENABLE_SHARED
AC_DISABLE_STATIC
AC_PROG_LIBTOOL(libtool)
en 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
es posible que alguien dame un ejemplo de construir un .so basado en lo anterior?
Debe reemplazar AC_PROG_LIBTOOL con LT_INIT –
Bah ... después de escribir esto, me di cuenta de que lo anterior, de hecho, creó el archivo .so en un directorio .libs oculto de mi directorio de origen. Esperemos que esto ayude a alguien más que se pregunta sobre esto. – skimon
¿Alguien puede publicar los ejemplos completos de los archivos aquí? No los archivos fuente, sino configure.ac y Makefile.am. No puedo hacer que esto funcione usando la información en este hilo. –