GNU/Linux >> Tutoriales Linux >  >> Linux

forma correcta de codificar/incrustar el número de versión en el código del programa

Normalmente, para los números de versión mayor y menor (como en 1.2, 1 es mayor y 2 es menor), generalmente se escriben directamente en el código, generalmente como #define (porque es posible que los necesite para compilaciones condicionales, es decir, #if bloques).

Por lo general, tendría un encabezado separado que contiene solo esas definiciones y nada más (excepto la protección del encabezado), para minimizar las dependencias.

Algunas personas usan el sistema de compilación (como cmake) para obtener un número de versión del control de versiones (git, svn, cvs, etc.) y luego colocan ese número de versión en su encabezado de "versión". O bien, colocan el número de versión en los archivos de configuración del sistema de compilación y luego lo colocan en el encabezado, como se muestra en el tutorial de cmake. Personalmente, no me gusta este enfoque porque tiende a modificar los archivos de encabezado con demasiada frecuencia y provoca recompilaciones frecuentes y sin sentido.

Prefiero escribir el número de versión en el archivo de encabezado y luego extraer esos números de versión (mayor, menor, ...) del encabezado en el sistema de compilación. Esta es otra cosa que cmake puede hacer muy fácilmente.

Si desea incrustar un número de versión de día a día en su software, como un número de compilación o un número de revisión, entonces no debe ponerlo como un #define en un archivo de encabezado, sino como un extern const variable que defina en un archivo cpp. Por ejemplo, puede usar cmake para extraer un número de revisión de su sistema de control de versiones, agregarlo al archivo cpp que define este extern const int revision; variable (a través de configure_file de cmake función) y vincule sus programas con ese archivo cpp/objeto. De esta manera, el número de revisión se integra automáticamente en sus programas en cada reconstrucción y no desencadenará recompilaciones completas cada vez que se actualice (que es en cada confirmación).

El punto es que los números de versión principal y secundaria no se cambian con la frecuencia suficiente para requerir algún tipo de mantenimiento automático, pero debe escribirlos manualmente en un solo lugar y propagarlos automáticamente en cualquier otro lugar donde pueda ser relevante (recomendaría que este lugar sea el propio archivo de cabecera). Solo los números de revisión o compilación deben automatizarse por completo (generados por el control de versiones y propagados a todos los demás automáticamente).


Creo que es costumbre mantener el número de versión en un archivo de encabezado dedicado. Algunas herramientas pueden generar esto automáticamente para usted.

Por ejemplo, consulte la sección "Agregar un número de versión y un archivo de encabezado configurado" en el Tutorial de CMake.


Linux
  1. Encuentre el número de líneas de código del repositorio de GitHub

  2. ¿Cuál es la mejor manera de contar el número de archivos en un directorio?

  3. Manera de incrustar un binario ejecutable en un script de Shell sin herramientas adicionales?

  4. ¿La forma correcta de acceder a un archivo de ayuda específico en Vim?

  5. ¿Mantener la funcionalidad Front-end y CLI del programa separada?

Introducción al sistema de control de versiones

Cómo comprobar el número de versión y el nombre en clave de Linux Mint

Una forma sencilla de comprobar la versión de los controladores de NVIDIA en Linux

Forma correcta de usar Ubuntu systemctl para controlar Systemd

¿Hay alguna forma de obtener CLOCK_TAI correcto en Linux?

Forma más rápida de eliminar una gran cantidad de archivos