プロが教えるわが家の防犯対策術!

10日でおぼえるC言語教室という書籍を購入し、その通りにシステム環境変数の設定を行ったのですが、stdio.hに対してNo such file or directoryの様な?文が出てきてしまいました。
そこで自分なりに調べた結果、ネット上にC_INCLUDE_PATHとCPLUS_INCLUDE_PATHも追加で設定する必要があると書いてありました。
この時点ですでに???ですが…とりあえずやってみたところNo such~のエラーはでなくなりました。
ただ、代わりにsyntax errorなどの様なエラーが沢山出てきてしまいました。(しかし、exeファイルは出来ていて実行は可能です)
自分で書いたコードなら書き間違いだと思うのですが、stdio.hは付属のCDーROMからのものなのでミスは無いと思うのですが…
OSはvistaで、CドライブとDドライブが入っているものです。
この書籍でのCコンパイラはMinGWです。書籍付属のCD-ROMからmingw-jpを任意の場所(今回はDドライブ→新規→プログラム→MinGWの中)にコピーしてシステム環境変数pathの設定を行うとgccでコンパイルが可能というものです。
ちなみにシステム環境変数pathに設定したbinというフォルダがあるのは、mingw-jpの中で、場所はDドライブ→新規→プログラム→MinGW→mingw-jp→binです。
変数pathに追加したのは ;D:\新規\プログラム\MinGW\mingw-jp\bin; です。
C_INCLUDE_PATHとCPLUS_INCLUDE_PATHは両方ともD:\新規\プログラム\MinGW\mingw-jp\includeと記述しました。stdio.hはincludeのフォルダの中にちゃんとありました。
実際はmingw-jpの中にcodeというフォルダを作り、その中にhelloというフォルダを作り中にhello.cを記述してあります
以下がエラーの一部です

D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:206: error: syntax error before "size_t"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:217: error: syntax error before "size_t"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:218: error: syntax error before "__gnuc_va_list"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:219: error: syntax error before "__gnuc_va_list"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:220: error: syntax error before "__gnuc_va_list"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:221: error: syntax error before "size_t"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:224: error: syntax error before "size_t"
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h:226: error: syntax error before "size_t"

実際はまだまだエラーが続いてます
ここで
1.書籍にはシステム環境変数pathの設定のみしか書いてありませんでしたが、上記のNO~というエラーが出てしまいます。私の設定の仕方が悪いのでしょうか
2.C_INCLUDE_PATHとCPLUS_INCLUDE_PATHを追加すると1のエラーは無くなりましたがこれってどういう事なのでしょうか
3.stdio.hに対してエラーが沢山出ていますが、これって何なのでしょうか
4.syntax errorが出ているのに実行ができるのは何故なのでしょうか
5.この方面は素人同然なので文中の解釈が変かもしれませんが、ご指摘があればお願いします

自分でも調べてみましたがお手上げ状態です。助けていただければ幸いです

A 回答 (4件)

> 1.書籍にはシステム環境変数pathの設定のみしか書いてありませんでしたが、上記のNO~というエラーが出てしまいます。

私の設定の仕方が悪いのでしょうか
> 2.C_INCLUDE_PATHとCPLUS_INCLUDE_PATHを追加すると1のエラーは無くなりましたがこれってどういう事なのでしょうか
「No such file or directory」はそのまま、「ファイルまたはディレクトリが見つかりません」です。
MinGW-gccでは、「C_INCLUDE_PATHとCPLUS_INCLUDE_PATH」から、ヘッダファイル(stdio.h等)を検索してきます。

> 3.stdio.hに対してエラーが沢山出ていますが、これって何なのでしょうか
標準のヘッダファイルにエラーが沢山出る事はあまりありませんが、
stdio.hをincludeしている元ファイルの#include <stdio.h>の直前とかに、
記述ミスがある場合、つられて、エラーになる場合があります。
他には、ソースファイル(例えばhello.c)の文字コードがMinGW-gccが対応していない
物になっている時も、stdio.hにエラーがあるようなメッセージが出た事がある
気がします。

> 4.syntax errorが出ているのに実行ができるのは何故なのでしょうか
syntax errorが出た場合、実行ファイルは出来ないはずなので、
最初から、exeファイルが有った等の勘違いかもしれませんよ?

MinGW-gccは、Windowsアプリをgccで開発したい人には、良い選択だと思いますが、
C言語の基礎学習目的だと、
・cygwin版のgcc
・Borland C++ Compiler
等の方が向いているかもしれません。

cygwin-gccの方が、環境構築が楽だし、エラーメッセージも一部日本語化されています。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます
>>MinGW-gccでは、「C_INCLUDE_PATHとCPLUS_INCLUDE_PATH」から、ヘッダファイル(stdio.h等)を検索してきます。

そうだったんですか…

>>文字コードがMinGW-gccが対応していない物になっている時も
物によって違う事もあるんですね…

exeについてはプロンプト上からフォルダを作って確認しましたが出来てしまうみたいでした

MinGWは基礎学習には最適というわけでもないんですかね?
少し残念ではありますが折角買った本にはこれで書いてあるのでぼちぼちやっていきます。


今回の原因は日本語フォルダを混ぜてしまった事でした↓↓
お騒がせしました。

お礼日時:2011/01/04 21:28

何はともあれ、あるがままのソースを見せてください。

    • good
    • 0
この回答へのお礼

お返事ありがとうございます
CD-ROMのコードでもエラーが出ていたのでずっと不思議でしたがフォルダが日本語だったのが駄目だったみたいでした。
お騒がせしました

お礼日時:2011/01/04 21:38

回答 1 と同じだけど,


日本語のフォルダ名やスペースの入ったフォルダ名は全て避けた方がよい.

フォルダ名は,8文字以下の半角英数にすべし.
(古い非日本語のプログラムを動かすときの鉄則)

D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h

これがコピペしたエラーメッセージなら,
フォルダの区切りが / とバックスラッシュの混合になっていて,
非常におかしい.
    • good
    • 0
この回答へのお礼

お返事ありがとうございます

鉄則ですか…
言語を学ぶと同時にその周辺も知る必要があるんですね
日本語フォルダを止めたらokでした↑↑

エラーはコピペです。
エラー=一様におかしい と思ってたのでこの文字列もなんだろなぁぐらいにしか見てませんでした…

ともあれ、これでスタートが切れます!ありがとうございました

お礼日時:2011/01/04 21:36

ご質問に対する回答ではないですが、MinGWというコンパイラは日本語のフォルダ名、ファイル名というのは大丈夫なんですか?



私がC言語やっていたときはそういったところで引っかかっていたので。
#今は出来るのかもしれないので、あくまでチェックポイントの一つとして確認してみてください。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます
言語系は今回初挑戦だったので知りませんでした…こっち方面では使えないものなんですね。
認識できなかったみたいです。

お礼日時:2011/01/04 21:18

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