[C con Clase] compilación de una libreria para arquitectura ARMV4

RFOG rfog en cableworld.es
Sab Jul 21 11:24:18 CEST 2007


En Fri, 20 Jul 2007 23:29:43 +0200, ERVA <abraxas_dragon en yahoo.com.mx>  
escribió:

> Encontré una macro que se hace llamar _WIN32_WCE, entonces lo que hice  
> fue en cada parte del código donde hubiera una compilación condicional  
> en la que se necesitara comprobar esta arquitectura, la fuí agregando.  
> Con esto me deshice de los dos últimos errores. Ahora me quedá resolver  
> los demás errores y creo que esto se debe a un "warning" que no lo  
> públique previamente. Se tratá del siguiente "warning"
>
> ---------------------------------
> warning C4013: 'gmtime' undefined; assuming extern returning int
> ---------------------------------
>
> De donde proviene ese "warning es del siguiente código:
>
> ----------------------------------
> ...
> struct tm *newtime;
>    #ifdef _WIN32_WCE
>      SYSTEMTIME ltime;
>    #else
>      time_t ltime;
>    #endif
>    int actual, next, i;
>    unsigned char actual_s[3],next_s[3];
>    char temp[4];
>   #ifdef _WIN32_WCE
>      GetSystemTime( &ltime );
>    #else
>      time( &ltime );
>    #endif
>   newtime = gmtime( &ltime );								          actual   =  
> newtime->tm_year;
> ...
> ----------------------------------------------------
>
> Por lo que entiendo es que esa función o no encuentra dentro del  
> contexto de WCE, por lo que se tiene que usar alguna que sea compatible.  
> Y se tendría que desarrollar una compilación condicional para cada caso.  
> Espero estár en lo correcto, sino por favor corriganme y si se puede  
> hasta unos "zapes" ("zape" en mi tierra se entiende a unos golpes en con  
> la palma de la mano en la cabeza) para que entienda.
>

No y no. Eso te reventará por algún lado. No mires las cabeceras del  
sistema, tienes que encontrar la definición que te deje de dar dicho  
warning, o cuando ejecutes verás cómo te salta todo por los aires.  
Recuerdo que yo tuve el mismo problema, y lo solucioné por completo  
haciendo lo que te comento en el otro mensaje. Prueba a dejar todo como  
estaba y a añadir la línea que te he comentado en las opciones del  
proyecto.

> De antemano Gracias...
>
> El pasado 2007-07-20 14:39:09, ERVA escribió:
> E> Hola:
> E> En estos dias estoy tratando de compilar unas librerias en Microsoft  
> Visual Studio  (Visual C++) para una arquitectura ARMV4 que corresponde  
> con un sistema Windows Pocket PC, pero no he tenido mucho éxito. La  
> salida me arrojá alguno errores que los comparto con ustedes:
> E> /**********************************************************/
> E> ..\funccomm.c(667) : error C2037: left of 'tm_year' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(681) : error C2037: left of 'tm_mon' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(682) : error C2037: left of 'tm_mday' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(683) : error C2037: left of 'tm_hour' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(684) : error C2037: left of 'tm_min' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(685) : error C2037: left of 'tm_sec' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(699) : error C2037: left of 'tm_mon' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(700) : error C2037: left of 'tm_mday' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(701) : error C2037: left of 'tm_hour' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(702) : error C2037: left of 'tm_min' specifies  
> undefined struct/union 'tm'
> E> ..\funccomm.c(703) : error C2037: left of 'tm_sec' specifies  
> undefined struct/union 'tm'
> E> ..\pkcs5.c(21) : fatal error C1083: Cannot open include file:  
> 'sys\timeb.h': No such file or directory
> E> ...\r_random.c(49) : fatal error C1083: Cannot open include file:  
> 'sys\timeb.h': No such file or directory
> E>  
> /***********************************************************************/
> E> Tomando en cuenta los dos últimos mensajes de error, encontré en  
> otras listas de correo  
> (http://sources.redhat.com/ml/pthreads-win32/2003/msg00101.html y  
> http://cygwin.com/ml/pthreads-win32/2004/msg00070.html) donde tratan de  
> compilar una librería para WinCE en eVC++ (muy similar a lo que estoy  
> haciendo, pero para  otra librería). Sugieren agregar una macro (_ARM_ o  
> WINCE, dependiendo) en ciertas partes del código.
> E> Lo que a mí me confunde es cuál es el criterio que se tiene que  
> seguir para hacer esas modificaciones.
> E> Ahora bien, dandome una vuelta por las macros definidas en mi Visual  
> C++ para WinCE encontré dos macros definidas: _ARM_ y ARM.
> E> Espero me puedan orientar, por favor.
> E> De antemano gracias.
> E> Reciban un afectuoso saludo.
> E> _______________________________________________
> E> Lista de correo Cconclase Cconclase en listas.conclase.net
> E>  
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> E> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ



-- 
Visita mi  blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y  programación
========================================
No tenemos más derecho a consumir felicidad sin producirla, que a consumir  
riqueza sin producirla.
		-- George Bernard Shaw. (1856-1950) Dramaturgo irlandés.




Más información sobre la lista de distribución Cconclase