buildroot を使用して Linux カーネル モジュールを作成し、クロスコンパイルを実行しています。次のようなオプションのビットを作成するために、Config.inファイルを作成しました。
config BR2_PACKAGE_MYPACKAGE_OPTION1
bool "Option 1"
私のソースコードでは、次のようになります。
#ifdef CONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
#error Testing if symbol defined
#endif
これは機能しません。オプションが menuconfig からチェックされるコンパイル時にシンボルが定義されていません。シンボルは最上位の .config ファイルに表示されます。
mypackage.mk はシンボルにアクセスできると思いましたが、そうです。これらを .mk ファイルに追加しようとしましたが、TARGET_CFLAGS と EXTRA_CFLAGS の両方がステートメントによって変更されますが (@echo コマンドで確認)、コンパイラに渡されません。
ifeq ($(BR2_PACKAGE_MYPACKAGE_OPTION1),y)
TARGET_CFLAGS += -DCONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
endif
ifeq ($(BR2_PACKAGE_MYPACKAGE_OPTION1),y)
EXTRA_CFLAGS += -DCONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
endif
ソース コード内の構成シンボルにアクセスするにはどうすればよいでしょうか?