有効にする方法がわかりませんprintk()
- Google で何を検索しましたか? とりわけ、これはほぼ常に利用可能であることを暗示しているように思われprintk()
ます (ただし、適切なレベルでメッセージをマークする必要があり、コンソールに表示されるレベルを制御できる可能性があります)。
マクロ名の角括弧は一般的ではないため、おそらくシステム固有の拡張子です。
行間を読むと、Linux カーネル、つまり GNU Make について話している可能性がありますが、そのようなことを述べれば、すべての人を助けることができます。
:=
表記は、変数への即時代入です。RHS は、通常のようにマクロが使用されるときではなく、行が読み取られて処理されるときに評価されます。これは、RHS で参照されているマクロがある場合、それらのマクロへのその後の変更は、このマクロの値に影響しないことを意味します。検討:
CFLAGS = ${OFLAGS} ${IFLAGS} ${DFLAGS} ${WFLAGS}
CFLAGS := ${OFLAGS} ${IFLAGS} ${DFLAGS} ${WFLAGS}
最初のバリエーションは、CFLAGS が 4 つの名前付きマクロから形成されることを示しています (実際には、後で展開できるように行をコピーするだけです) が、(おそらく) C コンパイル コマンドで使用されるまで値を展開しません。
2 番目のバリエーションは、行が読み取られた時点で 4 つのマクロの値をすぐに探して展開します。参照される 4 つのマクロのその後の変更は、CFLAGS に反映されません。
この+=
表記法は、単に RHS を置き換えるのではなく、RHS をマクロに追加します。