User Tag List

Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 18

Tema: fecha y hora de compilacion automatica en el binario?

  1. #1

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2

    fecha y hora de compilacion automatica en el binario?

    hola,

    he visto que en algunos programas al ejecutarlos pone la version, y la fecha y hora de compilacion. no se si lo hacen a mano, pero me suena que es una variable o algo. Estoy hablando de un programita en C/C++, con gcc, y el kdevelop usa autoconf, automake, y auto-todo jeje.

    Trabajo con kdevelop por si lo tengo que cambiar en kdevelop o en otro sitio.

    Tambien decir que no consigo que me cambie el #define VERSION 0.1 que aparece en el config.h por mucho que lo cambio en todos los sitios que aparece en kdevelop.

    Aiken

  2. #2

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,580
    Mencionado
    94 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    454
    Agradecer Thanks Received 
    2,053
    Thanked in
    Agradecido 1,080 veces en [ARG:2 UNDEFINED] posts
    La forma más rápida que se me ocurre: gcc -DCOMPDATE=`date` ... y luego usas COMPDATE en tus fuentes

  3. #3

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    He googleado un poco y, al menos en gcc, es tan fácil como usar __DATE__ y __TIME__

    Código:
    printf("Compiled %s %s\n",__DATE__, __TIME__);
    No hay que configurar nada en kdevelop. Eso sí, supongo que la hora será distinta en cada fichero objeto, o al menos en cada ejecutable/librería que compiles...

  4. #4

    Fecha de ingreso
    Sep 2006
    Ubicación
    Malaga
    Mensajes
    8,152
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,942
    Agradecer Thanks Received 
    2,352
    Thanked in
    Agradecido 1,565 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por efegea Ver mensaje
    He googleado un poco y, al menos en gcc, es tan fácil como usar __DATE__ y __TIME__
    Esto vale para cualquier compilador de C/C++, son variables del preprocesador, y se reemplazan por la fecha y hora actual. Asi que lo suyo es tener algo como
    Código:
    #define VERSION "Version 0.3.2 " __DATE__ " " __TIME__
    Última edición por swapd0; 18/12/2007 a las 20:35

  5. #5

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    **** que cojonudo lo del date y time.

    Y sabeis donde se cambia lo del VERSION en kdevelop? porque lo he cambiado en varios sitios que lo he encontrado pero sigue poniendome 0.1

    PD. Vale, vale, que me defino yo el version y a correr, pero era por si alguien sabia usar eso en el kdevelop, creo
    que tiene algo quever con el configure porque hay un #define VERSION en el config.h generado automaticamente, y supongo que lo saca del proyecto de kdevelop pero no soy capaz de encontrarlo, lo he visto en dos sitios lo he cambiado y he hecho un rebuild de todo y sigue poniendo 0.1

    PD Por cierto gracias por lo de date y time

    Aiken
    Última edición por Aiken; 18/12/2007 a las 21:58

  6. #6

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Eso de la versión me pasó a mi también

    Edita el archivo configure.in, busca AM_INIT_AUTOMAKE, tiene que estar al principio, ahí pone el nombre del programa y la versión, cambia el 0.1 por la versión que quieras ponerle.

  7. #7

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por efegea Ver mensaje
    Eso de la versión me pasó a mi también

    Edita el archivo configure.in, busca AM_INIT_AUTOMAKE, tiene que estar al principio, ahí pone el nombre del programa y la versión, cambia el 0.1 por la versión que quieras ponerle.

    la pregunta: el configure.in no se regenera solo cada vez a partir del proyecto? no sea que lo cambie ahi y vuelva a regenerarse. la verdad no entiendo para que esta en la configuracion del proyecto si no se traspasa ahi.

    Voy a probar a editarlo a mano el configure.in a ver que pasa.
    Aiken

  8. #8

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Que yo sepa el configure.in sólo lo toca kdevelop cuando creas el proyecto, y en el caso de que lo regenere, al menos esa línea la deja intacta. Lo digo porque yo lo he modificado y a mi no me ha cambiado nada automáticamente.

  9. #9

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por efegea Ver mensaje
    Que yo sepa el configure.in sólo lo toca kdevelop cuando creas el proyecto, y en el caso de que lo regenere, al menos esa línea la deja intacta. Lo digo porque yo lo he modificado y a mi no me ha cambiado nada automáticamente.
    lo estoy mirando, y si que lo toca, y lo que es peor PASA BIEN LA NUEVA VERSION!

    El problema es:

    kdevelop te crea 2 "targets":

    - debug
    - optimized

    que simplemente son que si eliges uno u otro compila con opciones de compilacion diferentes y deja los resultados en las carpetas debug u optimized.

    El problema: existen 3 configure.h!! uno en cada carpeta de debug y optimized (para que ****) y otro donde estan los fuentes en src.

    Pues resulta que al actualizar el proyecto, se actualiza el configure.h que esta en la carpeta del "target" activo

    y cuando haces un #include "config.h" lo coge del "src" que no esta actualizado.

    Aiken
    < - >
    PD. Pensandolo bien, parece logico que haya varios config.h uno para cada "target" pues tendra opciones difrentes no solo de compilacion sino de otras cosas.

    Ahora el tema es. Desde el codigo que pongo #include "config.h"? #include "debug/src/config.h"?

    me parece cutre esta ultima opcion porque habria que ir cambiando el include manualmente depende de que target quieras compilar

    Aiken
    Última edición por Aiken; 18/12/2007 a las 22:11 Razón: Edición automática anti doble-post.

  10. #10

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Es decir, que s&#237; modifica el configure.in, pero el que modifica es el del target activo, &#191;no? Claro, por eso no me lo modificaba a m&#237;, porque yo estaba mirando el del src cuando ten&#237;a activo el debug.

    Eso es un bug, &#191;no?

    Yo he encontrado otro bug que me est&#225; fastidiando bastante. Al hacer el ./configure me mete en un Makefile la l&#237;nea -I/usr/include/sigc++-2.0 en un punto del Makefile donde no debe, y claro al compilar da error. Tengo que modificar el Makefile a mano y borrar esa l&#237;nea

  11. #11

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por efegea Ver mensaje
    Es decir, que sí modifica el configure.in, pero el que modifica es el del target activo, ¿no? Claro, por eso no me lo modificaba a mí, porque yo estaba mirando el del src cuando tenía activo el debug.
    Eso es un bug, ¿no?
    Pues no estoy seguro que sea un bug, lo mismo lo estamos haciendo mal. Piensa la idea esa de que cada target podria tener un config diferente con defines diferentes.

    Lo que no se es porque crea 3 config.h uno en cada carpeta. O lo que es peor tiene logica que haya 3 por lo de configuraciones diferentes, pero como se refiere a cada uno sin tener que fisicamente escribir la ruta completa?


    Cita Iniciado por efegea Ver mensaje
    Yo he encontrado otro bug que me está fastidiando bastante. Al hacer el ./configure me mete en un Makefile la línea -I/usr/include/sigc++-2.0 en un punto del Makefile donde no debe, y claro al compilar da error. Tengo que modificar el Makefile a mano y borrar esa línea
    no sera que tienes alguna opcion puesta en las opciones del proyecto, que necesita esa libreria, y el error que te esta dando es que no tienes esa libreria instalada?

    a mi me pasaba lo mismo con las libtool, que creo que son algo para depurar codigo, y el te las mete por defecto y si no tienes instaladas esas liberias te peta.

    yo lo que hice es instalar las libtool y a correr, porque no encontre en que parte del proyecto estaban activada esa opcion ... curiosamente hoy mirando esto otro me ha parecido ver una referencia a las libtool, pero ya no me he atrevido a tocarlo.

    Si no quieres comerte el coco buscandolo, comprueba si tienes instalada esa lib y sino instalala y a correr

    Aiken

  12. #12

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Claro que la tengo instalada, si el error que me da es "Makefile: error: falta un separador" y si hago click en el error me lleva a una l&#237;nea del makefile que es ese -I/usr/include/sigc++-2.0 que est&#225; en un sitio que no debe, lo borro y ya compila perfectamente.

    En concreto deber&#237;a estar en la l&#237;nea de INCLUDES, y efectivamente, est&#225; ah&#237; pero adem&#225;s se cuela en otro sitio que no debe, y no s&#233; porqu&#233;.

  13. #13

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    por curiosidad estoy buscando en mi proyecto a ver si aparece en algun lado esa liberia.

  14. #14

    Fecha de ingreso
    Aug 2005
    Mensajes
    9,463
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    No creo que aparezca, la he a&#241;adido yo, es una librer&#237;a de se&#241;ales, tipo los slots y se&#241;ales de la librer&#237;a Qt. Se suele usar para librer&#237;as de interfaces de usuario. Y yo estoy haciendo una

    Por ejemplo conectas la se&#241;al mouseclick de una instancia de un bot&#243;n, a una funci&#243;n que act&#250;e cuando esa se&#241;al (evento) ocurra.

  15. #15

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,899
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por efegea Ver mensaje
    No creo que aparezca, la he añadido yo, es una librería de señales, tipo los slots y señales de la librería Qt. Se suele usar para librerías de interfaces de usuario. Y yo estoy haciendo una

    Lo cual nos lleva a la segunda paradoja de Matrix: cuando añades una libreria ... yo lo unico que he hecho ha sido añadir mis includes (en mi caso de la SDL_image) y en las opciones del proyecto añadir en una casilla un "-lSDL_image".

    El tema es que ejecutando el configure a mano, no me va, porque me he dado cuenta que lo que hace el capullo del kdevelop (lo mismo es lo normal) es: primero pone el "-lSDL_image" como variable de entorno (creo que como LDFLAGS en el entorno) y luego ejecuta el configure y asi si funciona.

    Pero es poco limpio eso de meterlo como variable de entorno para que lo coja en configure no? o es asi como se hace habitualmente? entiendo que no porque una persona que este ejecutando el configure desde linea de comandos tenga que acordarse de hacer un setenv a mano del "-lSDL_image" me parece raro.

    Como haces tu para meter una libreria nueva?
    Aiken

Página 1 de 2 12 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •