アプリ版:「スタンプのみでお礼する」機能のリリースについて

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 )
{
----------------------------------

A 回答 (2件)

HEW は使ったことないですが、プリプロセッサ出力を見れば、原因が分かると思いますよ。



↓マニュアル
http://documentation.renesas.com/jpn/products/to …

のp11に「preprocessor=ファイル名」とすればプリプロセッサ出力を書き出せるようなので、出力ファイルをエディタで開いて

1) queue.h を検索
2) QueInit( を検索
 Inline void QueInit() がどう展開されているか調べる。
3) 正しければ、その位置から上方向にさかのぼって、あやしそうなところを見つける。
4) 見つからない場合は、「2)」の QueInit() の行を含む、それより前(上)の数行 [*1] をコピーして、例えば「test00.c」のような適当なファイルに保存。
5) 「4)」のファイルを普通にコンパイルする。
 エラーになるはずなので、ソースをじっくり調査する。

 [*1] 空行(何もコードのない行)を除いて、関数プロトタイプ宣言とか外部変数宣言とかを数行、の意。


まぁ、「Inline」が怪しそうですが…
    • good
    • 0

ルネサスには問い合わせてみましたか?


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A