Creacion de librerias dinamicas en C/C++

Las librerias dinamicas son aquellas que se cargan en el momento de ejecutar el programa, no estan incluidas en el, lo cual genera ejecutables mas pequeños

Para crear una libreria dinamica (*.so) debemos compilarla utilizando la opcion -fPIC y enzamblarla usando la opcion -shared

Dejo un ejemplo:

liv.h:
#ifndef LIV_H
#define LIV_H

int f (int n);

#endif

liv.cpp:
#include "liv.h"

int f (int n) {
   return (n > 1) ? (n * f(n - 1)) : 1;
} // f

main.cpp:
#include <iostream>
using std::cout;
using std::endl;
#include "liv.h"

int main () {
   cout << "5! = " << f(5) << endl;
   return 0;
} // main

Compilamos utilizando los siguientes comandos:

Code:
[vampird@sharwyn]:~/devel/c++$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`
[vampird@sharwyn]:~/devel/c++$ g++ -fPIC -c liv.cpp
[vampird@sharwyn]:~/devel/c++$ g++ -shared -o libliv.so liv.o
[vampird@sharwyn]:~/devel/c++$ g++ main.cpp -o main -L. -lliv
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: