general definicion cuadro comandos cluster clasificación clasificacion archivística archivistica dependencies makefile gnu-make

dependencies - definicion - comandos cluster linux



Necesita una regla de dependencia de archivo que pueda manejar archivos perdidos (3)

Dos posibilidades:

Primero, puede agregar una regla a su Makefile para ejecutar el paso de dependencia:

.SUFFIXES: .d %.d:: makedepend_command_here

De lo contrario, desde la sección Last Resort de la página de info para GNU Make:

Por ejemplo, al probar un archivo MAKE, es posible que no le importe si los archivos fuente contienen datos reales, solo que existen. Entonces podrías hacer esto:

%:: touch $@

hacer que todos los archivos fuente necesarios (como requisitos previos) se creen automáticamente.

¿Funcionará esto para crear archivos .d vacíos para usted?

Usamos GNU Make para nuestro sistema. Al final de nuestros makefiles, tenemos un llamado llamado Makedepends que genera un grupo de archivos .d usando -MM enciende gcc. Luego incluimos el archivo .d para cada archivo .cc usando una línea include $ (CXXFILES: .cc = .d). Pero cuando eliminamos un archivo o movemos archivos, las dependencias dejan de funcionar y tenemos que eliminar manualmente los archivos .d (incluso una limpieza no funciona porque las dependencias fallan)

¿Hay alguna manera de generar estos archivos de .d de dependencia o incluir estos archivos de .d de dependencia que manejarán elegantemente una eliminación o reubicación de archivos?

EDITAR: Por ejemplo: tengo serial.cc y los makefiles generan un archivo serial.d que tiene una dependencia en buffer.h pero luego lo cambio para que no necesite buffer.h más y elimino buffer.h. La próxima vez que ejecute make, se ahogará porque incluye el archivo .d que aún hace que serial.o dependa de buffer.h.


Si usa makepp con la opción --rm-stale , notará los archivos que ya no son edificables y los eliminará. Si este es un caso de uso normal para usted, puede poner esa opción en .makepprc en la raíz de su árbol de compilación, y siempre se usará.

Pero, por supuesto, makepp maneja toda esta detección de dependencia en sí misma, por lo que no es necesario que desordene su archivo MAKE. Es incluso mejor que su enfoque, ya que puede generar encabezados necesarios a tiempo para que el compilador los recoja, donde gcc -MM fallaría.

Hay mucho más para makepp. Además de hacer casi todo lo que GNU puede hacer, hay muchas cosas más útiles, e incluso puedes ampliar tus archivos make con alguna programación de Perl.