• 締切済み

HEWを使用しているのですが、このようなエラーが出ました。

HEWを使用しているのですが、このようなエラーが出ました。 C:\Hiae_7751RTE\Product\T-Kernel\sh7751R\include\queue.h(28) : C2500 (E) Illegal token "void" C:\Hiae_7751RTE\Product\T-Kernel\sh7751R\include\queue.h(29) : C2500 (E) Illegal token "{" 最初はコンパイルエラーもリンクエラーもなかったのですが、intprg.c、resetprg.cを消した(この時点でもエラーはなし)のでstacksct.hを別のソースファイルからインクルードさせてみたら上のようなエラーが出ました。エラーが出たのでstacksct.hをインクルードさせるのもやめてみましたがエラーは消えません。 新しくプロジェクトを作ってみましたがダメでした。 また、queue.hは書き換えていません。 なぜ関係のないqueue.hにエラーがでたのでしょうか? queue.hのエラーが出た行です↓ ---------------------------------- Inline void QueInit( QUEUE *que ) { ----------------------------------

みんなの回答

  • z64423
  • ベストアンサー率53% (26/49)
回答No.2

HEW は使ったことないですが、プリプロセッサ出力を見れば、原因が分かると思いますよ。 ↓マニュアル http://documentation.renesas.com/jpn/products/tool/j702248_superh.pdf のp11に「preprocessor=ファイル名」とすればプリプロセッサ出力を書き出せるようなので、出力ファイルをエディタで開いて 1) queue.h を検索 2) QueInit( を検索  Inline void QueInit() がどう展開されているか調べる。 3) 正しければ、その位置から上方向にさかのぼって、あやしそうなところを見つける。 4) 見つからない場合は、「2)」の QueInit() の行を含む、それより前(上)の数行 [*1] をコピーして、例えば「test00.c」のような適当なファイルに保存。 5) 「4)」のファイルを普通にコンパイルする。  エラーになるはずなので、ソースをじっくり調査する。  [*1] 空行(何もコードのない行)を除いて、関数プロトタイプ宣言とか外部変数宣言とかを数行、の意。 まぁ、「Inline」が怪しそうですが…

  • wathavy
  • ベストアンサー率22% (505/2263)
回答No.1

ルネサスには問い合わせてみましたか? あと、プロジェクトファイルをバックアップしていないのでしょうか? 変更前の状態のプロジェクトを持たずに、変更してしまってエラーが出ても、後の祭りですよ。 変な現象が山ほど出ます。 改造する直前に、動作しているプロジェクトは必ず、番号をつけて注記を書いて(テキストでいい) 圧縮するなりして保存しておかなければ、後戻りできなくなった時点でお手上げです。

関連するQ&A