No sé cómo activar printk()
- ¿Qué buscaste con Google? Entre otras cosas, encontré this que parece implicar que printk()
casi siempre está disponible (pero debe marcar los mensajes con un nivel apropiado, y probablemente haya un control sobre qué niveles se muestran en la consola).
Los corchetes en un nombre de macro son poco ortodoxos y, por lo tanto, probablemente sean una extensión específica de su sistema.
Leyendo entre líneas, es probable que esté hablando del kernel de Linux y, por lo tanto, de GNU Make, pero usted ayudaría a todos si afirmaba tales cosas.
La notación :=
es una asignación inmediata a la variable. El RHS se evalúa cuando la línea se lee y se procesa, no cuando se usa la macro como es normalmente el caso. Significa que si hay macros referenciadas en el RHS, los cambios posteriores a esas macros no afectarán el valor de esta macro. Considere lo siguiente:
CFLAGS = ${OFLAGS} ${IFLAGS} ${DFLAGS} ${WFLAGS}
CFLAGS := ${OFLAGS} ${IFLAGS} ${DFLAGS} ${WFLAGS}
La primera variación señala que CFLAGS se forma a partir de las 4 macros con nombre (bueno, en realidad, simplemente copia la línea listo para la expansión posterior), pero no se expande los valores hasta que se utiliza en (presumiblemente) un comando de compilación C
La segunda variación busca inmediatamente los valores de las 4 macros en el momento en que se lee la línea y las expande. Los cambios posteriores en las 4 macros referenciadas no se reflejan en CFLAGS.
La notación +=
agrega el RHS a la macro, en lugar de simplemente reemplazarlo.
Umm ... es esto en un makefile? ¿Un script de shell? – Beta
Es un archivo MAKE. He corregido la pregunta. – db42