私はデバイスのLinuxカーネルをローカルで変更し、/include/linuxにヘッダファイル(例えばah)を追加し、それをカーネルディレクトリの2つのCファイルで参照しました。ヘッダーファイルには、内部で初期化された構造が含まれています。カーネルをコンパイルするたびに、「struct_var」エラーのいくつかの定義が表示されます。どのような変更が必要ですか?
答え1
一度だけ含まれていることを確認してください。
通常、次を使用します。
#ifndef UNIQUE_IDENTIFIER_MAYBE_THE_FILENAME
#define UNIQUE_IDENTIFIER_MAYBE_THE_FILENAME
// your file contents go here
#endif
これにより、コンパイラがこのファイルを2番目に含めるときにUNIQUE_IDENTIFIER_MAYBE_THE_FILENAMEを定義し、その中にビットを定義しません。