Hola, tengo una función en un fichero diferente al main.cpp, y quiero que esa función pueda ser llamada desde el fichero main, cómo le hago? :-\
Me pueden dar unos ejemplos? , gracias de antemano.
Hola, simplemente debes indicar mediante comillas en una sentencia include, el arhivo de cabecera de funciones externas que quieras agregar:
por ejemplo en tu main.cpp
#include "cifrados.h"
int main()
{
....
caesar(x);
....
return 0;
}
en tu biblioteca tendrìas las declaraciones de dichas funciones, un arhivo metodos_cifrado.h con algo como
#ifndef CIFRADOS_H
#define CIFRADOS_H
.....
void caesar(*char);
void vigenere (*char);
.....
#endif
mientras que tus declaraciones las haces en metodos_cifrados.cpp
#include "cifrados.h"
void caesar(*char)
{
......
}
void vigenere(*char)
{
......
}
etc...
a grosso modo... Serìa el diseño de lo que se denomina una biblioteca estàtica.
Puedes ubicarla en una carpeta para que quede màs organizado... recuerda entonces poner correctamente el path en el include.
Creas la biblioteca en sí del siguiente modo..
Citar
gcc -static -c cifrados.cpp -o cifrados.o
ar -rcs libcifrados.a cifrados.o
(de esta manera puede accederse luego como si fuera una del sistema)
La enlazas luego por ejemplo con
Citarg++ -L. -Icifrado.h main.cpp -o cifrando_texto
Bueno todo esto puede automatizarse con makefile, o bien hacerlo desde una IDE... pero bàsicamente esta es la idea. Saludos
(edito) modifiqué los nombres para evitar confusión en la biblioteca, así como agregué la parte de la creación de la biblioteca estática propiamente dicha, antes del enlace.
Hola, me funciona todo bien así como dices, pero cuando quiero hacer lo mismo con una función de tipo inline me lanza el error: undefined reference to `funcion(short*, short*, short)'|
Hola, debes tener todas las funciones externas declaradas correctamente en la cabecera .h, sino no podrás enlazarlas luego.