私は自分のUbuntuソースコードに追加したいくつかのカーネルモジュールをビルドしようとしています。コンパイルに失敗した後、同じエラーが別の場所で起きていることが分かりました。コンパイラは、フォルダのインクルードディレクトリにある一連のヘッダを見つけることができません。カーネルソースのmakefileにインクルードディレクトリを追加するにはどうしたらいいですか?
E.X。
メインフォルダ:ドライバ/ SCST/
サブフォルダ:ドライバ/ SCST/
どのように私は、フォルダを含めること追加することができますが含まれます:ドライバ/ SCST/iscsiの-SCST/
は、フォルダを含めますメイクファイル?
ここにmakefileがあります。
ccflags-y += -Wno-unused-parameter
scst-y += scst_main.o
scst-y += scst_pres.o
scst-y += scst_targ.o
scst-y += scst_lib.o
scst-y += scst_sysfs.o
scst-y += scst_mem.o
scst-y += scst_tg.o
scst-y += scst_debug.o
obj-$(CONFIG_SCST) += scst.o dev_handlers/ iscsi-scst/
私はカーネルソースでは動作していない1つのように「正常な」メイクファイルでそれを行う方法の約50%確信しているが、どのように私は上記のようなものでそれを行うことができますか?
ありがとうございます。
私は本当に正しい方法を持っていない、私はちょうどこの事を正しくコンパイルするようにしようとしています。だからあなたは、 "インクルード"ファイルの内容をそれらを必要とするディレクトリにコピーすべきだと言っているのですか? – ianc1215
はい、ドライバで使用されるヘッダーは一般にドライバ固有であり、ドライバでのみ使用される場合は同じディレクトリに追加するという標準的な規則があるためです。一般的なカーネルロジックで使用されている場合は、include/linuxに入り、そのアーキテクチャが特定のもので複数の場所で使用されている場合include/asm –
ビルド中のすべてのモジュールSCSTモジュールにこれらのヘッダが必要な場合は、/linuxの権利は、archに固有なものではないので?彼らはこのプロジェクトでのみ使用されていますが? – ianc1215