Autor Tema: Dudas con el include  (Leído 2534 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Dudas con el include
« en: 06 de Febrero de 2012, 16:00:42 »
Tengo unas dudas sobre los includes: He creado una carpeta (E:\C18 y dentro las carpetas hex y todo) con un nuevo proyecto, aqui quiero almacenar todo (*.h, *.c, hex, etc). Dentro de Project/Build option/Project he apuntado el Output Directory e Intermediary Directory a E:\C18\hex y el Include Search Path, Library Search Path y Linker-Script Search Path apunto a E:\C18\todo.

En el main al colocar: #include <p18f4550.h> me salió error porque faltaban unos archivos (clib.lib, c018i.o y p18f4550.lib) los incluí en E:\C18\todo y compiló bien, hasta aqui todo bien.

hago un programa simple:
while(1)
{
   LATDbits.LATD0=1;
   Delay10KTCYx(120);
   LATDbits.LATD0=0;
   Delay10KTCYx(120);
}

Me sale un warning pero si compiló y generó el hex: Warning [2058] call of function without prototype, efectivamente no he declarado el prototipo sin embargo corro el programa en el hardware y funciona correctamente, porque no salió error y generó el hex correctamente?

Si incluyo la libreria delays: #include <delays.h> me compila bien y no sale error, pero si no he colocado en mi carpeta dicha libreria porque compila bien?

Lo mismo me pasa con otras librerias como la usart, etc.

Alguien tiene idea de lo que sucede?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Dudas con el include
« Respuesta #1 en: 06 de Febrero de 2012, 17:18:14 »
Una imagen:


No hay que empezar a copiar archivos dentro de carpetas ni nada de eso, solo colocar correctamente el path correspondiente. Para los archivos header de las librerías que incluye C18, hay que señalar C:\MCC18\h, luego para las librerías pre-compiladas se indica C:\MCC18\lib. Por aquí un tutorial de como se lleva a cabo un proyecto de C18 en MPLAB IDE 8.x. También te puede servir el tutorial Aplicaciones avanzadas en C18 II, como para ver de que manera ir creando los Path segun nuestras librerias y las de C18.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Dudas con el include
« Respuesta #2 en: 06 de Febrero de 2012, 17:32:28 »
Si claro eso lo se, pero me refiero a que a veces quiero modificar los pines de la libreria usart por software o spi por software etc y quiero tenerlo en mi carpeta de proyecto, pero me extraña que a pesar que le he indicado al compilador en build options/project que todos los paths estan en mi carpeta me compila bien sin haber colocado el include en mi carpeta.

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: Dudas con el include
« Respuesta #3 en: 06 de Febrero de 2012, 18:11:13 »
Hola.
      En la configuración build, option, project: como te quedaron las configuraciones de los path? Solamente quedaron las que apuntan al disco E:? O te quedaron también los path que se configuran por defecto?

      Probá forzar la búsqueda a tus directorios que están en E: enmarcando los archivos que incluís con comillas dobles "archivo.h" para indicar que no busque en el path por defecto sino en el directorio actual del proyecto. y si lo tenés en subcarpetas podés usar .\    (punto barra invertida)

Asi:
Output Directory :          .\output       

Intermediary Directory:       .\intermediary

        Saludos.
               Jukinch
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Dudas con el include
« Respuesta #4 en: 06 de Febrero de 2012, 18:31:04 »
Si pues eso tambien probé, asi:

En mi carpeta E:\C18\ si coloco el archivo usart.h y en mi programa coloco #include "usart.h" me compila bien (como se esperaba) pero si borro el archivo tambien me compila bien y si lo cambio de posición tambien me compila, es decir no importa donde coloque el archivo igual siempre me compila bien, lo cual no deberia ser asi.

En los paths tengop solo apuntado mi carpeta nada mas, no coloco en ningun caso la dirección C:\MCC18.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Dudas con el include
« Respuesta #5 en: 06 de Febrero de 2012, 18:35:34 »
Hola,

Citar
En mi carpeta E:\C18\ si coloco el archivo usart.h y en mi programa coloco #include "usart.h" me compila bien (como se esperaba) pero si borro el archivo tambien me compila bien y si lo cambio de posición tambien me compila, es decir no importa donde coloque el archivo igual siempre me compila bien, lo cual no deberia ser asi.

No te quejes, tienes un compilador "inteligente" que sabe exactamente donde buscar los archivos headers sin que tu se lo indiques jejejeje

Saludos !

Desconectado jorgejg

  • PIC12
  • **
  • Mensajes: 96
Re: Dudas con el include
« Respuesta #6 en: 06 de Febrero de 2012, 20:53:07 »
Si pues me lee la mente tambien.

Bromas aparte obviamente algo se me esta pasando aqui, a ver si alguien tiene alguna idea.

Saludos.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Dudas con el include
« Respuesta #7 en: 06 de Febrero de 2012, 21:24:18 »
si pones #include "archivo.h" lo deberia coger de la carpeta, si lo pones con <> lo deberia coger del directorio includes.

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: Dudas con el include
« Respuesta #8 en: 07 de Febrero de 2012, 00:57:33 »
Si usás windows 7 probá ejecutar desde la consola de comandos inicio, cmd y luego ejecutá set

para ver como tenés configurado la variable de entorno MCC_INCLUDE:

en mi caso está así
MCC_INCLUDE=C:\Program Files\Microchip\mplabc18\v3.40\h

tratá de cambiarlo. para ver que te hace.

Ya que si usás los signos < > para incluir va a buscar en los directorios que seteaste en build option project y en la carpeta que indique MCC_INCLUDE environment variable

Página 15 del manual de c18

2.5 INCLUDE FILE SEARCH PATHS
2.5.1 System Header Files
Source files included with #include <filename> are searched for in the path
specified in the MCC_INCLUDE environment variable and the directories specified via
the -I command-line option. Both the MCC_INCLUDE environment variable and the -I
values are a semicolon delimited list of directories to search. If the included file exists
in both a directory listed in the MCC_INCLUDE environment variable and a directory
listed in a -I command-line option, the file will be included from the directory listed in
the -I command-line option. This allows the MCC_INCLUDE environment variable to
be overridden with a -I command-line option.
2.5.2 User Header Files
Source files included with #include “filename” are searched for in the directory
containing the including file. If not found, the file is searched for as a system header file
(see Section 2.5.1 “System Header Files”).
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes


 

anything