2012-07-06 25 views
8

Eclipse C++に問題があります。私のプロジェクトはコンパイルされ実行されますが、eclipse(juno)は何千ものエラーがあると言っ続けています。例えば、SetRun関数がコード内にあり、eclipseに次のエラーが記述されています: "無効な引数が呼び出されました"候補:void SetRun(?) '"、SetRunはstatic void SetRun(uint32_t run)C++ eclipseの間違ったエラー解釈

私は、Eclipseのように、関数の型を理解していないようなエラーがあり、 '?'代わりに。

私もこのような多くのエラーがあります: "シンボル '*'を解決できませんでした。

私はこれがすべて同じ問題の一部だと思います。

私はこれらのエラーについて教えてもらえませんか?

+0

よくあると厄介な問題。 StOvで解決してもいいです –

答えて

3

実際、Eclipseは不安定なプロジェクトです。プロジェクトをきれいにしてリフレッシュしてみてください。

+0

私はプロジェクトをきれいにしてリフレッシュしようとしましたが、エラーはまだ残っています。私も日食を再開しました。私はむしろ可能な限り日食に固執したいと思う。 – bob

+4

プロジェクト内のすべてのインデックスを再構築しようとしましたか? –

+0

私はそれが何を意味するか分からないので、私はそうは思わない。あなたはどうやってそれをしますか? – bob

4

私は提案されたソリューションを試してみましたが、それは私のためには機能しませんでした。このプロジェクトのCodeAnalysisを無効にしたことは何を助けたのですか?私はProperties-> C/C++ General-> Code分析に行きました。選択プロジェクト設定を使用し、すべてのエラーをオフにしました。これはもちろん非常に厄介で不幸なことですが、私はそれが適切に修正されたときを知ってうれしいです。それは他のまともなIDEが持っている機能を利用することができないのは残念です。

0

Mac向けのコードでCODANを実行しようとすると、これらのエラーが発生しました。私のMac SDKライブラリは、this questionのようにシンボリックリンクを介して配布されていました(しかし、それらのすべてではありません - 調整してください!)結局、すべてのヘッダーが含まれていないことが判明しました。 、今IOKit/IOKitLib.hで定義された関数の正しいシグネチャを、(私が持っていなかった)である

Invalid arguments 'Candidates are: ? IORegistryEntryGetParentEntry(?,?,?)' 

:エラーを与えていた

IORegistryEntryGetParentEntry(service, kIOServicePlane, &parent); 

:たとえば、私は、次の関数呼び出しを持っていました:我々は最初の引数を取り、型定義をトレースする場合

kern_return_t IORegistryEntryGetParentEntry(
    io_registry_entry_t  entry, 
    const io_name_t   plane, 
    io_registry_entry_t *parent); 

は今、我々が得る:

typedef io_object_t   io_registry_entry_t; (in IOKit/IOTypes.h) 
typedef mach_port_t   io_object_t; (in IOKit/IOTypes.h) 
typedef mach_port_name_t mach_port_t; (in mach/port.h) 
typedef natural_t   mach_port_name_t; (in mach/port.h) 

そして!私は__darwin_natural_tを定義したインクルードを持っていませんでした。これは実際にはi386に含まれていましたが、これは私のシンボリックリンクディレクトリにはありませんでした。それはチェーン完了の追加:私は、この「タイプトレース」を繰り返し

Invalid arguments 'Candidates are: kern_return_t IORegistryEntryGetParentEntry(io_registry_entry_t ,?,io_registry_entry_t*)' 

:最後に

typedef __darwin_natural_t natural_t; (in i386/vm_types.h) 
typedef unsigned int  __darwin_natural_t; (in i386/_types.h) 

を、CODANはなるはずだったIORegistryEntryGetParentEntry()のどのタイプの引数1知っていた、とエラーに変更しました他の議論は、エラーが消えたことがわかった(私はインデックスを再構築する必要はありませんでしたが、YMMV)。もちろん、必要なヘッダを見つける必要があります。が含まれています - 上記は単なる例です!

0

私はいくつかの機能も同じ問題を抱えていました。その議論は、いくつかのtypedefの後で定義されていない(標準ではない)__int64であることが判明しました。私は自分のプロジェクトでそれを定義しなければならず、これが問題を解決しました。

プロジェクト - >プロパティ - > C/C++一般 - >パスとSymbols-> Symbols-> C++ソースファイル - >追加

名:__int64

値:長い長い

(または代わりに「長い長い」多分あなたは編集

this answerからの値)のいずれかを使用できます。ところで

、私はこのことについてバグレポートを見ましたが、私は非常にEclipseのBugzillaにssue、ので、多分__int64を定義するEclipseでは将来

1

には必要ではないだろう。

  • プロジェクトを右クリックし、
  • [プロパティ]をクリックします
  • は、「C/Cをを展開++一般的な "左のツリービューの項目をクリックして表示します(項目をクリックするだけでサブオプションは展開されません)
  • サブオプションから"プリプロセッサにパスを含めるマクロ等 "
  • タブ「プロバイダ」をクリックし、次の「内蔵コンパイラ設定CDTのGCC [共有]」のチェックボックスをオンにします。
関連する問題