Crear biblioteca en C

Iniciado por gremlin, 28 Octubre 2019, 00:50 AM

0 Miembros y 2 Visitantes están viendo este tema.

gremlin

Buenas, hice un programa ".c" con sus funciones, y luego cree un archivo ".h" donde puse el nombre de todas las funciones y quiero saber si tengo algun error

Puse

#ifndef __BIBLIOTECA_H__
#define __BIBLIOTECA_H__

#include <stdio.h>  (esto porque en las funciones del archivo ".c" uso esta biblioteca)

constantes

int funcion(variables);

#endif /*__PERFIL_H__ */


Pero sin embargo cuando en otro programa pongo #include "biblioteca.h" al compilarlo me pone:
fatal error: biblioteca.h: No such file or directory
#include "biblioteca.h"

Y no entiendo en donde estaria mi error.
Tenia entendido que esa era la manera de crear una biblioteca, qué me faltaria hacer o qué está mal?

Gracias!!!


ThunderCls

Verifica que en tu include estas poniendo la ruta completa de tu header file, por ejemplo suponiendo que estes usando windows:
#include "C:\\MICARPETA\\biblioteca.h"

De otra forma si usas solo
#include "biblioteca.h"

Necesitas tener el fichero .h en la misma carpeta que tu main.c o del fichero donde lo estas incluyendo
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

gremlin

Cita de: ThunderCls en 28 Octubre 2019, 13:55 PM
Verifica que en tu include estas poniendo la ruta completa de tu header file, por ejemplo suponiendo que estes usando windows:
#include "C:\\MICARPETA\\biblioteca.h"

De otra forma si usas solo
#include "biblioteca.h"

Necesitas tener el fichero .h en la misma carpeta que tu main.c o del fichero donde lo estas incluyendo

O sea, en la misma carpeta donde está el programa que usa mi biblioteca creado debo tener los archivos de la  biblioteca? y cuando compilo deberia usar el nombre de la carpeta?

ThunderCls

Te repito, ya que no das detalles de tu entorno de desarrollo, ni compilador, ni SO. Si no tienes tu header file en la misma carpeta que el fichero .c en el que la esta usando, necesitas poner la ruta completa de tu biblioteca.h en el include o incluirla en los paths de tu entorno de desarrollo. Por otra parte evitas todo esto copiando el header file junto con su fichero .c  a la misma carpeta de tu .c principal. Al final deberias tener algo como:

MI_CARPETA
|_main.c
|_biblioteca.c
|_biblioteca.h

Luego para compilar con GCC usarias

Código (bash) [Seleccionar]
gcc -o main.out main.c biblioteca.c

Supongo que te habra quedado claro
Saludos
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

gremlin

Cita de: ThunderCls en 28 Octubre 2019, 16:21 PM
Te repito, ya que no das detalles de tu entorno de desarrollo, ni compilador, ni SO. Si no tienes tu header file en la misma carpeta que el fichero .c en el que la esta usando, necesitas poner la ruta completa de tu biblioteca.h en el include o incluirla en los paths de tu entorno de desarrollo. Por otra parte evitas todo esto copiando el header file junto con su fichero .c  a la misma carpeta de tu .c principal. Al final deberias tener algo como:

MI_CARPETA
|_main.c
|_biblioteca.c
|_biblioteca.h

Luego para compilar con GCC usarias

Código (bash) [Seleccionar]
gcc -o main.out main.c biblioteca.c

Supongo que te habra quedado claro
Saludos

Siii, mil gracias!