Autor
|
Tema: Incluir archivos de cabecera (Leído 9,092 veces)
|
SrCooper
Desconectado
Mensajes: 137
Bazinga!
|
He creado una serie de archivos de cabecera para mis proyectos en c++ y hasta ahora si queria incluirlos en mi codigo debia teclear: #include "nombre.h"
e incluir los archivos en la carpeta de mi proyecto. Pero resulta engorroso tener que copiar y compilar siempre los archivos cada vez asi que me gustaria saber donde tengo que copiar los archivos de cabecera para poder escribirlo asi: #include <nombre.h>
y no tener que copiar siempre los archivos. Es decir, me gustaria convertir mi cabecera en una libreria normal. He buscado informacion en google y en el foro pero no he encontrado nada que solucione mi problema. Uso linux, el compilador gcc y emacs. Un saludo y gracias por adelantado.
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Deberías estar trabajando en la teoría de cuerdas y no programando. Eso es cosa de ingenieros Cuando tu escribes <>, el compilador busca en la carpeta "include". Está dentro de la carpeta del compilador. También puedes decirle al compilador que añada a su base de datos un determinado directorio.. En Codeblocks puedes configurarlo para que lo haga en todos los proyectos (o te haces una plantilla específica). Seguramente (casi 100%) emacs también lo permita (es algo bastante básico).
|
|
« Última modificación: 15 Junio 2013, 23:54 pm por amchacon »
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
En Linux, el compilador buscará en una serie de directorios estandarizados, entre ellos: - /usr/include
- /usr/local/include
Pon tu cabecera ahí. Si además has creado una librería estática o dinámica puedes ponerla en: y enlazar con ella con la opción "-l" de gcc. PD: Necesitarás privilegios para escribir en esos directorios.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
SrCooper
Desconectado
Mensajes: 137
Bazinga!
|
Deberías estar trabajando en la teoría de cuerdas y no programando. Eso es cosa de ingenieros En realidad es una duda para Howard. Evidentemente yo ya lo se Ahora en serio, copie los archivos de cabecera a la carpeta /usr/include pero me sigue dando error al compilar. En Codeblocks puedes configurarlo para que lo haga en todos los proyectos (o te haces una plantilla específica).Seguramente (casi 100%) emacs también lo permita (es algo bastante básico).
Si seguramente sí pero no es eso lo que me interesa. Estuve probando a copiar la cabecera en distintos directorios pero de verdad que no encuentro que hacer. Alomejor estoy compilando mal o algo asi (aun soy bastante inexperto). Un saludo PD: Si al final no encuentro solucion pues crearé una plantilla y ya está.
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Qué errores te da? Porque así a ciegas es difícil ayudarte.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
Prueba una cosa busca los archivos de cabecera de la libreria estandar, mira a ver en que carpeta tienes alojados los stdio.h, string.h, stdlib.h, math.h etc etc. Y ahi sera donde debas poner tus bibliotecas personales.
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Prueba una cosa busca los archivos de cabecera de la libreria estandar, mira a ver en que carpeta tienes alojados los stdio.h, string.h, stdlib.h, math.h etc etc. Y ahi sera donde debas poner tus bibliotecas personales.
Ese directorio suele ser /usr/include, tal como he dicho más arriba. Sería bastante raro que en su ordenador fuese otro directorio.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
Asi es pero como el compañero ya ha puesto sus archivos *.h en ese directorio y sigue sin poder incluirlos en su codigo, lo unico que se me ocurre es que la carpeta include del compilador este en otro sitio o tenga otro nombre por la razon que sea.
|
|
|
En línea
|
|
|
|
SrCooper
Desconectado
Mensajes: 137
Bazinga!
|
g++ -o main main.cpp /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' /tmp/cclBSM8A.o: In function `_main_()': main.cpp:(.text+0x14): undefined reference to `miniwin::vredimensiona(int, int)' main.cpp:(.text+0x39): undefined reference to `miniwin::rectangulo(float, float, float, float)' main.cpp:(.text+0x76): undefined reference to `miniwin::texto(float, float, std::string const&)' main.cpp:(.text+0x93): undefined reference to `miniwin::refresca()' collect2: error: ld returned 1 exit status
Esto son los errores que da cuando intento compilar el archivo main.cpp, en el que se llaman a diferentes funciones citadas en los archivos de cabecera. Al parecer no reconoce estas funciones. He copiado las cabeceras en el /usr/include y en la carpeta del compilador y en el codigo escribi #include <cabecera.h>. La verdad es que no se si estoy haciendo algo mal soy bastante novato programando. Alomejor estoy teniendo algun fallo tonto. Si sirve de ayuda los archivos de cabecera en este caso son parte de un conjunto de funciones llamadas MiniWin creadas por Pau Fernández para el dibujo de diversas imagenes en consola. Un saludo
|
|
« Última modificación: 16 Junio 2013, 19:54 pm por SrCooper »
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Vale, los errores son en tiempo de enlazado, lo que significa que el compilador encuentra las cabeceras. La pregunta es: hay archivos de implementación, aparte de las cabeceras? o librerías estáticas o dinámicas?
Porque lo que no encuentra el compilador es la definición de esas funciones.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problemas con la cabecera GOP
Multimedia
|
Aberroncho
|
0
|
1,671
|
7 Septiembre 2005, 11:48 am
por Aberroncho
|
|
|
[BATCH] Problema con Quick Batch compiler, incluir 2 archivos BAT.
« 1 2 »
Scripting
|
daniel69
|
17
|
13,668
|
31 Mayo 2009, 19:33 pm
por daniel69
|
|
|
¿En qué circunstancias los archivos de cabecera deben de terminar en .h?
Programación General
|
theluigy13etv
|
2
|
2,685
|
20 Febrero 2012, 07:07 am
por Caster
|
|
|
obtener cabecera-detalles e incluir resumen en el detalle [vb6&datareport]
Programación Visual Basic
|
4prendiz
|
0
|
1,506
|
23 Enero 2015, 22:32 pm
por 4prendiz
|
|
|
Deberías incluir sí o sí estos archivos y carpetas de Windows en tus copias ...
Noticias
|
wolfbcn
|
0
|
1,640
|
29 Septiembre 2017, 21:59 pm
por wolfbcn
|
|