2010-04-06 8 views
8

Tengo un proyecto en mi IDE. Necesito hacer una biblioteca compartida para usar en extensiones. No quiero hacer una copia de este proyecto con la configuración de biblioteca compartida. ¿Hay alguna forma de crear una biblioteca compartida utilizando los archivos de objeto (.o) de mi proyecto ya existente? Según entiendo, puedo escribir un archivo MAKE para esto.Creación de una biblioteca compartida a partir de archivos de objetos existentes

Respuesta

13

Asumo que estás en algún tipo de Unix y probablemente está utilizando las herramientas GNU. En ese caso, para crear una biblioteca compartida adecuada, necesitaría compilar su código utilizando los indicadores de código independientes de posición (-fpic o -fPIC) antes de poder crear una biblioteca compartida. A menos que sus archivos .o ya estén compilados con esos indicadores, es probable que no termine con una biblioteca compartida que funcione.

Si ya están compilados para el código de posición independiente, el g++ -shared ... habitual debería hacer el truco.

+2

+1 Olvidé mencionar que los archivos objeto también necesitan fpic. – pajton

+2

@pajton - Adivina quién ha sido atrapado por esto antes :). –

7

g++ -shared -fPIC -o myshared.so *.o

Cuestiones relacionadas