visual una studio librerias libreria dev crear creacion como c++ shared-libraries autotools automake

c++ - studio - ¿Cómo crear una biblioteca compartida(.so) en un script automake?



crear dll (1)

Si acaba de poner LT_INIT en configure.ac y en Makefile.am, haga:

lib_LTLIBRARIES = libtest.la libtest_la_SOURCES = test.cpp libtest_la_LDFLAGS = -version-info 0:0:0

usted debe obtener un .so. No debe especificar -fPIC a CFLAGS, etc. El especificador -version-info no es necesario, pero es una buena idea.

dado un 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, sin embargo, parece que no consigo que esto funcione.

Por ejemplo bajo g ++ hago lo siguiente:

g++ -shared -fPIC test.cpp -o libtest.so

luego 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 automake scriupt funcione de la siguiente manera pero parece que nunca produce un .so. Lo más cercano que he conseguido es que produzca un archivo .la y .o:

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

¿Podría alguien darme un ejemplo de construcción de un .so basado en lo anterior?