2016-03-24 3 views
0

このトピックの周りには多くの異なる答えがありますが、私の問題はもう少し具体的かもしれないと思います。EclipseのCDTで正しいLinuxヘッダーを使用して意味エラーを投げないようにするにはどうすればいいですか?

私は、組み込みターゲット用のCアプリケーションを構築するためのEclipse(v3.8.1)を使用しています。私はLTIBを使用してターゲットイメージを構築し、LTIB(Freescale i.MXプロセッサ用)が提供するGCCツールチェーンが健全であることを確認できました。ターゲットに「Hello World」アプリケーションを構築して展開することができます。

ここでは、EclipseのターゲットにいくつかのLinuxヘッダーを追加しようとしています。ですから、Eclipseの${LTIB_LOC} = /home/user/ltibにVARを追加し、インクルードファイルのディレクトリをどこかに追加してください(他の回答の助けを借りて)

${LTIB_LOC}/rpm/BUILD/linux-2.6.31/include 

、ソースコードで、私は私が必要とするヘッダを追加:

#include <linux/types.h> 
#include <linux/imx_types.h> 

さて、問題は二つあります。まず、共通のヘッダtypes.hが組み込みのホストディレクトリ(/usr/include/linux)から取得されていますが、LTIBディレクトリのものを使用したいのです。次に、カスタムi.MXヘッダーimx_types.hがEclipseディスカバリースキャナーによって見つからないため、コンパイラーがヘッダーとプロジェクトのビルドを見つけることができても、永続的な意味/警告が表示されます。

私は常にターゲットのLinuxヘッダーを使用するようにどのように私は、組み込みのホストディレクトリを取り除くことができ、そしてどのように私は信じられないほど迷惑なセマンティック・エラーを取り除くのですか?

+0

ctrl + clickは、SDKヘッダーの代わりにローカルヘッダーに移動することを意味しますか? – LPs

+0

@LPはい、そうです。 –

+0

プロジェクトプロパティー「C/C++ Build-> Environment'」を変更しましたか? – LPs

答えて

1

あなたは正しいツールチェーンを見つけるためにあなたの組み込みのコンパイラ設定プロバイダを設定する必要があります。

Project Properties | C/C++ General | Providersに移動します。 [Your Toolchain] Built-in Compiler Settingsを選択し、Command to get compiler specsには、${COMMAND}をクロスコンパイラのパスに置き換えます。

この

は、CDTは、システムのデフォルトのツールチェーンの含まれるビルトインを拾って停止し、内蔵のは、あなたのクロスコンパイラツールチェーンの含ま拾う開始するために取得する必要があります。

(はい、明示的なパスで${COMMAND}を交換しハックです。これを行うには適切方法は、少なくともこのシステムを設計し、開発者の心の中に、クロスコンパイラの開発者はEclipseプラグインを配布することですそれは(すなわち${COMMAND}で始まるには正しいことであるため)コンパイラの実行ファイルがどこにあるか知っているその自身[Cross Compiler Name] Built-in Compiler Settingsプロバイダを定義し、代わりに組み込みの設定プロバイダーデフォルトの。私はあなたがそのようなを持っていないと仮定していることを使用します便利なEclipseプラグインです)

+0

ありがとうございます - 私はずっと前にスクラップヒープに問題を委託しましたが、今後この情報を必ず使用します。 –

関連する問題