- ベストアンサー
エラーが出るのですが、なぜ間違いなのかが分かりません。
現在C言語を用いてソフトを考えています。 使っているソフトはフリーソフトの「MPLAB」に「PICCLITE」をプラグインして使用しています。 コンパイルを行ってみたところエラーが発生してしまい色々調べましたが解決策が分からず困っています、どなたか教えて頂けないでしょうか? #include<pic.h> #fuses HS, NOWDT, PUT,NOPROTECT(この行でエラー) #use delay(clock=20000000) (この行でエラー) main() { set_tris_a(0x0a); set_tris_b(0x0a); #use fast_io(a) (この行でエラー) #use fast_io(b) (この行でエラー) 最初の部分にあるこの四箇所でエラーが発生してしまいまい、エラーメッセージは以下のようなものです。 Error[107] C:\Documents and Settings\MyDocuments\PICC\remocon.c 2 : illegal # directive "fuses" Error[107] C:\Documents and Settings\MyDocuments\PICC\remocon.c 5 : illegal # directive "use" Error[107] C:\Documents and Settings\MyDocuments\PICC\remocon.c 12 : illegal # directive "use" Error[107] C:\Documents and Settings\MyDocuments\PICC\remocon.c 13 : illegal # directive "use"
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もう解決しているかも知れませんが、HI-TECH 社PICCLITEとCCS社PIC Cでは記述方法が全然違います。 #fuses HS, NOWDT, PUT,NOPROTECT などの意味を理解すれば、PICCLITEで通用する書き方に変更できると思います。私自身はPICCLITEに詳しくないのですが、最初の#fusesはPICコンフィギュレーション記述なので、PICCLITEではまったく別の書き方かも知れません。 ちなみに、両者ともANSI-Cの標準規格からは外れている文法であることを理解しておいてください。
その他の回答 (1)
- bardfish
- ベストアンサー率28% (5029/17766)
MPLABやPICCLITEを使用したこと無いのでハッキリと言えないのですが… #fuseや#useは標準のCではありません。 Cコンパイラにかける前にプリコンパイルが必要だと思うのですが… もう一度コンパイル手順を確認した方が良いと思います。
お礼
ありがとうございます、標準のCでなかったとは知りませんでした。 参考にしていた本ではこの方式で書かれていたのですが、その本ではCCS社のコンパイラを使っていたからでしょうか・・・ もう一度調べ直してみようと思います。
お礼
丁寧な解説ありがとうございます(^^ CCS社の記述を行い、PICCLITEでコンパイルを行ったのが原因のようですね、現在調べながらPICCLITEで通用するように書き換えようとしてます。