Tengo un conjunto de archivos cpp que quiero compilar directamente en un archivo binario y también para compilar en una biblioteca compartida.cómo crear archivos binarios y .so usando libtool
tengo
bin_PROGRAMS=mybin
lib_LTLIBRARIES=libmylib.la
COMMON_SOURCES=f1.cpp f2.cpp f3.cpp
mybin_SOURCES=main.cpp $(COMMON_SOURCES)
libmylib_la_SOURCES=$(COMMON_SOURCES)
Cuando ejecuto esto, los archivos cpp se compilan dos veces, una vez con libtool y otra sin él y, a veces libtool/automake se queja
Makefile.am: object `f1.$(OBJEXT)' created both with libtool and without`
He intentado poner COMMON_SOURCES en una. un archivo pero luego libtool se queja cuando enlace un .a con un .la (diciendo que no es portátil).
Lo que necesito es algo así como
bin_LTPROGRAMS=mybin
pero eso no existen
edición: aclaración - Estoy usando automake/autoconf. Lo que he mostrado anteriormente es la base de mi automake Makefile.am
no creo que usted puede hacer bibliotecas compartidas con libtool. Creo que necesitas usar el compilador. Pero has olvidado algunos detalles. Parece que está utilizando alguna forma de auto fabricación, etc. Por lo tanto, debe indicarnos la configuración exacta que está utilizando (ya que no parece ser una marca recta). –
libtool es específicamente para hacer bibliotecas compartidas http://www.gnu.org/software/libtool/manual/libtool.html – pm100
¿Por qué quieres crear 'libmylib.so', pero en lugar de vincular' mybin' a este compartido objeto, enlace estáticamente en las fuentes que lo componen? –