2012-04-30 8 views
1

私は、C/C++ Linux開発者のためのEclipse IDE(Indigo SR2)の組み込みシステム用のLinuxカーネルモジュール(ドライバ)を開発しています。カーネルのインクルードディレクトリをプロジェクトのパスに追加しました(プロジェクト>プロパティ> C/C++一般>パスとSybmols - >インクルード(タブ) - >追加...(ボタン))。ファイルは、linux/asm-powerpcディレクトリ(私の場合)のオーバーレイであり、linux/asm-genericディレクトリの上にあるasmディレクトリを参照しています。EclipseでLinuxカーネル開発のためのasmヘッダディレクトリを含めるには?

"asm"を "asm-powerpc"と最初に解釈するようにEclipseのインデクサーに指示することはできますか?それが失敗する場合は、単に "asm"を探す代わりに "asm-generic" Asmへのasm-powerpcのシンボリックリンクはいくつかの助けになりますが、あまりにも多くのヘッダーファイルは汎用的な場所にしか存在せず、これを使用できるようにしていません。

ありがとうございます!

+0

:1は、全体のカーネルソースを読むために必要がある場合

、このリンクを読んで機能がオンになっていますか? Linuxカーネル構築環境は、eclipseのスキャンの利益のために再作成するのが簡単ではありません。あなたが主張すれば、少なくともeclipseとLinuxカーネルでウェブ検索を行い、他の誰かがこれとすでに苦労しているかどうかを確認してください。 –

+0

こんにちはクリス、私はまず探検しました。私は、asm-genericからasm-poweprcに、欠けているファイルやディレクトリをシンボリックリンクして、それを合計することができますが、私はそこでの作業を望んでいますEclipseに既に組み込まれているより自然なソリューションです。 – Trevor

答えて

1

私が発見したように、Eclipseにカーネルのビルドプロセスと同様にインデックスを付けるために必要な部分がたくさんあります。しかし、この特定の質問への答えはかなり簡単だった:

は、あなたのプロジェクトに含まれ、次のパスを追加する必要があり、あなたのLinuxカーネル構築ディレクトリが ${KDIR}として定義され、カーネルアーキテクチャが ${ARCH}であると仮定すると、
  • ${KDIR}/include
  • ${KDIR}/arch/${ARCH}/include

あなたは、番目のプロジェクトを右クリックして、Project Explorerでこれを行うことができますen Properties > C/C++ General > Paths and Symbols > Includes (tab) > Add ... (button)

2番目のエントリがありませんでした。これを追加するとこの質問が解決されました。これらの2つのエントリで、未解決のインクルード(右クリックProject > Index > Search for Unresolved Includes)のチェックでエラーが発生しました。

今私は別のつまずきを打った。いくつかのタイプ(u32、boolなど)は、Eclipseではまだ定義されていません。 (私のMakefileはエラーを生成しません)。これは、Eclipseヘッダー解析で定義されていないカーネル固有の変数の一部に関連し、インクルードのIFDEFをカーネルモジュールのコンパイル時と同じに評価しないと考えています。しかし、私はまだこれを解決しておらず、それは別の質問に関係しています。 :)

1

プロジェクトごとのパスを追加する代わりに、グローバルCDTにグローバル環境変数を追加することもできます。 エクリプスケプラーについて、Window > Preferences > C/C++ > Build > Environmentに、追加の変数:

    C_INCLUDE_PATH
  • = /usr/include/c++/${gcc-version}
  • CPLUS_INCLUDE_PATH = /usr/include:${KDIR}/include:${KDIR}/include/linux:${KDIR}/arch/${ARCH}/include

実際のエントリと上方${var}を交換し、例えば${gcc-version}4.6.3に置き換えてください。 その後、Eclipseを再起動し、変数を適切に解決する必要があります。 カーネルモジュールの開発には、これで十分でしょう。特にコードはチェックして、それを使用して、あなたは絶対に日食を使用して主張しなければならない - 私はこれが急速に醜い取得する予定です期待 http://wiki.eclipse.org/HowTo_use_the_CDT_to_navigate_Linux_kernel_source

関連する問題