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.この方面は素人同然なので文中の解釈が変かもしれませんが、ご指摘があればお願いします
自分でも調べてみましたがお手上げ状態です。助けていただければ幸いです
No.2ベストアンサー
- 回答日時:
> 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の方が、環境構築が楽だし、エラーメッセージも一部日本語化されています。
お返事ありがとうございます
>>MinGW-gccでは、「C_INCLUDE_PATHとCPLUS_INCLUDE_PATH」から、ヘッダファイル(stdio.h等)を検索してきます。
そうだったんですか…
>>文字コードがMinGW-gccが対応していない物になっている時も
物によって違う事もあるんですね…
exeについてはプロンプト上からフォルダを作って確認しましたが出来てしまうみたいでした
MinGWは基礎学習には最適というわけでもないんですかね?
少し残念ではありますが折角買った本にはこれで書いてあるのでぼちぼちやっていきます。
今回の原因は日本語フォルダを混ぜてしまった事でした↓↓
お騒がせしました。
No.4
- 回答日時:
何はともあれ、あるがままのソースを見せてください。
お返事ありがとうございます
CD-ROMのコードでもエラーが出ていたのでずっと不思議でしたがフォルダが日本語だったのが駄目だったみたいでした。
お騒がせしました
No.3
- 回答日時:
回答 1 と同じだけど,
日本語のフォルダ名やスペースの入ったフォルダ名は全て避けた方がよい.
フォルダ名は,8文字以下の半角英数にすべし.
(古い非日本語のプログラムを動かすときの鉄則)
D:/新規\プログラム\MinGW\mingw-jp\include/stdio.h
これがコピペしたエラーメッセージなら,
フォルダの区切りが / とバックスラッシュの混合になっていて,
非常におかしい.
お返事ありがとうございます
鉄則ですか…
言語を学ぶと同時にその周辺も知る必要があるんですね
日本語フォルダを止めたらokでした↑↑
エラーはコピペです。
エラー=一様におかしい と思ってたのでこの文字列もなんだろなぁぐらいにしか見てませんでした…
ともあれ、これでスタートが切れます!ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) Arduinoに関する質問 4 2023/08/07 21:19
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Windows 10 pathが通らない 2 2023/03/27 11:28
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP php エラー 2 2022/10/23 16:43
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
コンパイルできません。
-
sys/time.hのインクルードがで...
-
HEWを使用しているのですが、こ...
-
ビルド時にinet_ptonが見つから...
-
RightとLeft関数のライブ...
-
multiple definitionというエラー
-
strcatについて
-
ビルドが失敗してしまいます
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
LPCWSTRとchar
-
VB2008で定数に色の設定をした...
-
適切な変換関数が存在しない???
-
右オペランドを扱う演算子は定...
-
レコードセットをcloseする所で...
-
C言語でpgm形式の画像を読み込...
-
フォートランプログラムのエラ...
-
visual C++ でaruduinoとシリア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
sys/time.hのインクルードがで...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
RightとLeft関数のライブ...
-
multiple definitionというエラー
-
WindowsからLinuxへの移植
-
HANDLEの宣言でのエラー
-
レコードセットをcloseする所で...
おすすめ情報