こんにちは。
C言語の開発環境について質問なのですが、
今まで、visual studio 2010 C++でプログラムの練習をしていたのですが、gccでプログラムを書いたほうが良いということを以前お聞きしたので、gccのMinGWをインストールしてテキストエディターにプログラムを記述しました。
実際に実行したのですが、その際、Visual Stuido のファイルが勝手に開き、書いたプログラムがそこに記述されるようになっただけなのですが、これは正常な動きなのでしょうか?
もし、正常であるならば、この後どのようなことをすればよろしいのでしょうか?
正常でない場合であれば、どのように対策をすればよろしいですか?
No.4ベストアンサー
- 回答日時:
> gcc : fatal error : no input files compilation terminated
これは、gccが動作していて、その上で入力するファイルが無い、というエラー
> 'gcc'は内部コマンド、外部コマンド
> 操作可能プログラムまたはパッチファイルとして認識されていません。
これは、そもそもgccが見付からない、という コマンドプロンプトが出すエラー。
まったく別のものです。
確認用には
gcc --version
を使いましょう。正しくインストールされていればGCCのバージョン情報が表示されます。
このエラーが出るということは
○PATHの設定が間違えている
○MinGWはインストールしたけど、gccはインストールしていない
のどちらか(あるいは両方)です。
> ;C:\MinGW\bin」を追加。
したのなら、
DIR C:\MinGW\bin
でファイル一覧を見てください(エクスプローラから上記フォルダを見てもいいです)
その中に gcc.exe はありますか?
また
PATH
とコマンドを入力すれば、現在のPATHが表示されます
その中に追加したC:\MinGW\bin は入っていますか?
> 次にコマンドプロント内に
> HelloWorld.c
> と入力しました。この際に、Visual Studio C++が開き、私の書いたコードが反映されます。
これは、エクスプローラからダブルクリックして、Visual Sutdioのテキストエディタで開いた、というのと同じです。
これだけではコンパイルはされていません。
> そして、コマンドプロントの方は何も表示されない状態になりました。
> おそらく、コンパイラしてエラーがなかったのだと思います。
違います。
コンパイルそのものが実行されていません。
ご回答ありがとうございます。
もう一度、MinGWをインストールしなおしてみると、どうやらMinGW manegerからC言語に必要なパッケージをインストールしていなかったのが原因でした。
今はしっかり自分のコードがコンパイルされて、実行も可能です。
No.5
- 回答日時:
> 次にコマンドプロント内に
>
> HelloWorld.c
>
> と入力しました。この際に、Visual Studio C++が開き、私の書いたコードが反映されます。
>
> そして、コマンドプロントの方は何も表示されない状態になりました。おそらく、コンパイラしてエラーがなかったのだと思います。
ここが思い違いのある場所です。
「今まで、visual studio 2010 C++でプログラムの練習をしていた」あなたの環境では、.c という拡張子を持つファイル名だけを入力した時はその .c という拡張子に対応したプログラムである visual studio 2010 でそのファイルを開くという事を行います。その結果が「Visual Studio C++が開き、私の書いたコードが反映されます」ということです。
そして、その時点では Visual Studio はただ単にそのファイルを開いただけでそれ以外のことは何も行っていません。なにも、です。コンパイルなんてしていません。
コンパイルしていないのですから当然 a.exe なんてできていません。したがって、そのあとで
> a
>
> と入力すると
>
> C:\CLang>'a'はは内部コマンド、外部コマンド
> 操作可能プログラムまたはパッチファイルとして認識されていません。
>
> と出てしまいます。
というのも当然です。
というか、gcc を使用するまともな初心者向け参考書ならばソースファイルを書いた後の手順としてコンパイルする手順が書いてあると思うのですが……。
gcc ほにゃらら
というように gcc で始まるコマンドプロンプト入力をしろという指示があるはずですよ?
ご回答ありがとうございます。
MinGWからgccをインストールしていなかったのが原因でした。
参考書にはその説明が載っていなかったので、サイトを参考にして何とかインストールできました。
Visual Studio C++が何故起動したのかもわかりました。
今後も勉強に励んでいきます。
No.3
- 回答日時:
何もかも間違ってますね。
PATHの設定がうまくいってない
>これは、おそらく英語が日本語になっただけの問題だと思うのですが、
全然違うメッセージです。英語がわからなければ翻訳サイトなどを利用してください。
>次にコマンドプロント内に
>HelloWorld.c
>と入力しました。
何故またそんなことを?参考書にそうしろと書いてありましたか?
>何がいけないのでしょうか?
参考書を読みながらやっていて、何故そんなことになってしまうのか?
ちゃんと、書いてあるとおりにやりましょう。
要点だけ書くと、
1.まず、PATHをちゃんと設定する(インストールの最初からやり直した方が良いかも)
2.gcc HelloWorld.c
3.a
この回答への補足
ご回答ありがとうございます。
根本から間違ってる、それがわかったので、もう一度参考書やサイトを確認して、やり直います。
複数のご解答ありがとうございました。
No.2
- 回答日時:
>C:\CLang>HelloWorld.c
>と入力してエンターを押しました。
それは、「HelloWorld.c を 拡張子Cに関連付いたプログラムで開け」という命令です。
参考書を見ながらインストールしたと言うことですが、コンパイルの方法がその参考書に書いてないはずは無いので、ちゃんと最後まで読みましょう。
コンパイラにパスがちゃんと通っていれば、
gcc Helloworld.c
というコマンドでコンパイルできます。エラーが無ければ、コンパイルの結果 a.exe というファイルが出来るので、
a
で実行できます。
この回答への補足
迅速な解答ありがとうございます。
まだ、うまくいかずで、ことの詳細を書きます。
Path環境変数にエリア値に「;C:\MinGW\bin」を追加。
コマンドプロントを開き、gccを入力してEnterを押せば、
gcc : fatal error : no input files compilation terminated.
と表示されるはずなのですが、
私の場合、
C:\Users\○○>'gcc'は内部コマンド、外部コマンド
操作可能プログラムまたはパッチファイルとして認識されていません。
と出てしまいます。これは、おそらく英語が日本語になっただけの問題だと思うのですが、
次からが決定的で、
参考書には「Cドライブ直下に『CLang』というフォルダを作成し、コマンドプロントのカレント・ディレクトリを『C:\CLang』に設定してください」とあり、私は
C:\Users\○○>cd C:\CLang
と入力しました。
そうすると、私のコマンドプロント内では、
C:\CLang>
に変わりました。 この時点でCLangというファイルを「いじれる?」状態になってのでしょうか?
そして、次に参考書では、「テキストエディタを使って、コードを入力し、C:\CLang直下にHelloWorld.cという名前で保存してください」とあり、私は、テキストエディタを開いて、CLangのフォルダ内に「HelloWorld.c」という名前で保存しました。その後、簡単なプログラムを書きました。
次にコマンドプロント内に
HelloWorld.c
と入力しました。この際に、Visual Studio C++が開き、私の書いたコードが反映されます。
そして、コマンドプロントの方は何も表示されない状態になりました。おそらく、コンパイラしてエラーがなかったのだと思います。
そして、いざ
a
と入力すると
C:\CLang>'a'はは内部コマンド、外部コマンド
操作可能プログラムまたはパッチファイルとして認識されていません。
と出てしまいます。本来なら
Hello, World!
と表示されなければなりません。
何がいけないのでしょうか?何度も申し訳ありません。ご教示お願いします。
No.1
- 回答日時:
> 実際に実行した
具体的にどんな操作をしたのですか?
気付かなかったかもしれませんが、VisualStudioでは
テキストでソースコードを書く
→ コンパイル(ビルド)して実行ファイル(.exe)に変換
→ 実行ファイルを実行
という手順でプログラムを実行しています。
GCCでも、同様のこと(コンパイルしてできた実行ファイルを実行)をする必要があります。
方法は解説サイト、参考書等を探せば見つかるはずです。
おそらく、 ~.cファイルをダブルクリックしたのではないでしょうか?
ダブルクリックで「開く」を実行
→拡張子の関連付けで.CはVisualStudioで開くようになっている
→VisualStudioで「開いた」
という動作でしょう。
現状の設定としたは「正しい」動作ですが
「プログラムを実行して欲しい」という、あなたの期待とは違う動作です。
この回答への補足
ご回答ありがとうございます。
この現象が起きるまでの過程を申し上げますと、
まず、参考書を参照しながら、「gccのMinGW」をインストールしました。(すでにVisual Studio C++はインストールしていました。)
その後、コントロールパネルの「システムの詳細設定」より、環境変数を既存のものに「;C:\MinGW\bin]を追加しました。
次に、「CLang」というフォルダを作成し、コマンドプロントのカレントディレクトリを「C:\CLang」に設定しました。
そして、テキストエディタを開いて、「HelloWorld.c」で保存し、簡単なプログラムを書きました。
コマンドプロントにて
C:\CLang>HelloWorld.c
と入力してエンターを押しました。
そうすると、Visual Stuido C++が開いて、テキストエディタでかいたプログラムがVSC++の方に反映されただけで、プログラムが実行されない状況におちいりました。
これも正常な動きとのことですが、ここからこのVisual Studio C++が出なくて、かつプログラムが実行されるにはどのようすればよろしいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
実行後にコンパイルに失敗しま...
-
obj オブジェクトファイルがで...
-
Makefileでのコンパイル方法
-
math.hに含まれる関数が使えない
-
minGWでのopneMPコンパイルにつ...
-
C言語のグローバル変数の初期...
-
C言語なうなんですが、コンパイ...
-
シリアル通信の受信待ちについて
-
C言語プログラムのコンパイルエ...
-
共有ライブラリの内容確認について
-
C言語で作ったらWindowsでもMac...
-
VC++6.0の混在モード
-
自作DLLの中身を暗号化
-
ヘッダーファイル『windows.h』...
-
すべてのリビルド: 0 正常、 0 ...
-
lhafileをインストールしたい
-
gccでの制作物の著作権
-
Linux(g++)とAIX(XL C++)の挙動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
実行後にコンパイルに失敗しま...
-
math.hに含まれる関数が使えない
-
すべてのリビルド: 0 正常、 0 ...
-
C言語で作ったらWindowsでもMac...
-
共有ライブラリの内容確認について
-
c言語です コンパイルした時に...
-
ビープ音が鳴りません・・・
-
64ビットのlinuxで32ビットメモ...
-
C#で char型とstring型の比較で...
-
ヘッダーファイル『windows.h』...
-
lhafileをインストールしたい
-
[COBOL] ソースの復帰
-
自作DLLの中身を暗号化
-
gcc バージョン違いによるコン...
-
プレコンパイルの意味を教えて...
-
gcc コンパイル killed
-
<math.h>ヘッダを入力している...
-
Verilog_HDLでのdefineとifdef
おすすめ情報