Como crear una libreria en codeblocks:
1. Crear la libreria
* archivo - nuevo - proyecto
* console application
* c++
* le ponen un titulo, "libreria" por ejemplo
* next, finish
* en el codigo fuente ponen las definiciones de las funciones (ver apendice, "libreria.cpp") y guardan (compilar no)
* crean un archivo de texto con el notepad que contenga los prototipos de las funciones y los structs si los hubiere (ver "header.txt")
* lo guardan (por ejemplo como "header.txt"), y lo copian en la misma carpeta que el codigo fuente de la libreria
* en el codigo fuente de la libreria junto con los otros 'include' ponen '#include "header.txt"'
* en el arbol de proyectos, a la izquierda, hacen clic derecho en el proyecto y seleccionan 'propiedades'
* van a la pestaña 'build targets' y donde dice 'type' seleccionan 'static library' y le mandan ok
* ahora compilan, 'Build' -> 'build', Ctrl+F9, o hacen clic en el engranaje amarillo
2. Crear el programa cliente que usa la libreria
* archivo - nuevo - proyecto
* console application
* c++
* le ponen un titulo, "cliente" por ejemplo
* next, finish
* copian el "header.txt" en la misma carpeta que el codigo fuente del programa cliente
* hacen el programa que usa las librerias (ver "main.cpp") y le agregan '#include "header.txt"' igual q con la libreria
* en el arbol de proyectos, a la izquierda, hacen clic derecho en el proyecto y seleccionan 'build options'
* van a la pestaña 'linker settings' y en el cuadro 'link libraries' hacen clic en 'add' y seleccionan el archivo 'librerias.a'
que deberia estar en "libreria/bin/debug/libreria.a", les pregunta 'keep ...' le ponen q si y le mandan ok, ok
* compilan y deberia funcionar
Apendice
libreria.cpp
Cita:#include <iostream>
#include "header.txt"
using namespace std;
int sumar(int a, int b)
{
return a+b;
}
void mostrar_hola ()
{
cout << "Hello world!" << endl;
}
header.txt
Cita:int sumar(int a, int b);
void mostrar_hola();
main.cpp
Cita:#include <iostream>
#include "header.txt"
using namespace std;
int main()
{
cout << sumar(2,3) << endl;
mostrar_hola();
return 0;
}