Cuál es el objetivo Makefile'.c. o ' para?


Alguien mencionó recientemente el objetivo .c.o en Makefiles para la compatibilidad cruzada, pero no entiendo su propósito. ¿Alguien puede aclararlo?

Author: Carl Norum, 2012-02-10

2 answers

Es una regla de sufijo anticuada. La forma más actualizada de hacerlo es usar una regla de patrón :

%.o : %.c
 30
Author: Carl Norum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 19:16:29

Es una regla enlatada para traducir archivos .c, es decir, módulos C, a archivos objeto .o. Existe para que no tenga que escribir esta regla usted mismo y está parametrizada por variables Make como CC (el compilador de C a usar), CFLAGS (banderas del compilador), etc.

Por lo tanto, si usa esta regla implícita para compilar módulos C y no juega con ninguna variable Make, entonces la persona que construye su código puede especificar un compilador y banderas en la línea de comandos sin editar el Makefile.

 2
Author: Fred Foo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 19:15:53