🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

3回答

13969閲覧

VScodeで.cファイルをコンパイルしたい

omochiiii.exe

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/05/04 06:58

C言語を勉強したいと思い、Visual Studio Codeでコンパイルしようとしましたが、
うまくいきません。
初歩的な躓きだと思うのですが、お力添えしていただけないでしょうか。

やったこと

1.VScodeをインストール、拡張機能C/C++を有効にする
2.「Hello,World!」と表示させるプログラム「main.c」を作成(下記参照)
3.MinGW内でパッケージ「mingw32-base-bin」「mingw32-gcc-g++-bin」をインストール
4.ユーザー環境変数の「PATH」に「C:¥MinGW¥bin」を追加
5.VScodeのターミナルで「gcc -o program main.c」とコマンドを打つ。→エラー

発生している問題・エラーメッセージ

gcc : 用語 'gcc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してか ら、再試行してください。 発生場所 行:1 文字:1 + gcc -o program main.c + ~~~ + CategoryInfo : ObjectNotFound: (gcc:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

該当のソースコード

main.c

C

1#include<stdio.h> 2 3int main(void){ 4 printf("Hello World\n"); 5 getchar(); 6 7 return 0; 8}

c_cpp_properties.json

json

1{ 2 "configurations": [ 3 { 4 "name": "Win32", 5 "includePath": [ 6 "${workspaceFolder}/**" 7 ], 8 "defines": [ 9 "_DEBUG", 10 "UNICODE", 11 "_UNICODE" 12 ], 13 "intelliSenseMode": "${default}", 14 "compilerPath": "C:/MinGW/bin/gcc.exe" 15 } 16 ], 17 "version": 4 18}

試したこと

・再起動
・c_cpp_properties.jsonのcompileerPathにgcc.exeのパスをコピペ
・intelliSenseModeに"${default}"を設定(windowsは「msvc-x64」がデフォルトですが、設定すると「IntelliSense モード msvc-x64 は、コンパイラ パスと互換性がありません。」とエラーが表示されるためこれで設定)

不足情報等ありましたら遠慮なくお申し付けください。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

3.MinGW内でパッケージ「mingw32-base-bin」「mingw32-gcc-g++-bin」をインストール

4.ユーザー環境変数の「PATH」に「C:¥MinGW¥bin」を追加

このどちらかで失敗があります。

質問で¥(utf-8コードC2 A5)になっているのは\(ASCIIコード0x5c)でなければいけません。コンピュータは見た目ではなく、文字コードで文字を判別していますので、文字コード5c(日本語キーボードであれば¥記号、英語キーボードであれば\記号)を、英数字入力モードで入力して下さい。入力された文字が¥に見えるか\に見えるかは気にする必要はありません。

いきなりIDE(といっていいかな)ではなく、基本としてコマンドプロンプトで自分ですべて管理している状態でコンパイルが成功することを確認してからIDEを被せた方がいいと思います。コンパイルボタンを押せばコンパイル出来ます、それ以外はわかりません...では、特にC言語をいじくろうという人にはちょっと寂しい状況に思えます。

コマンドプロンプトかPowerShellを開き、
cd c:\MinGW\bin
gcc --version
として、

Text

1gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 2Copyright (C) 2018 Free Software Foundation, Inc. 3This is free software; see the source for copying conditions. There is NO 4warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

のようなものが(多少の違いは問題ではありません)表示されなければ3.のインストールでの失敗。
cd \
gcc --version
として同様にならないならPathの設定が間違っている、ということになると思います。

投稿2020/05/04 12:05

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

omochiiii.exe

2020/05/04 13:31

回答ありがとうございます! cmdでバージョンの確認ができたので、パスを書き換えたのち再起動したのですが やはり失敗してしまいます(ターミナルで同じエラーが返ってきます)
pepperleaf

2020/05/04 13:38

失敗した時の PATHはどうなってるでしょうか? 多分、C:\MinGW\bin が入っていないのでは?
thkana

2020/05/04 13:40

あなたのやったこと、起こったことを「まとめ」や「解釈」なしで記して下さい。 > cmdでバージョンの確認ができたので 私は、ふたつの試行を書きました。両方ともでバージョン表示が為された、ということですか? > パスを書き換えた どうだったものを、どのように変更したのですか? もし、回答の両方でバージョンが表示されたのなら、書き換える必要はありません。 むやみやたらになんでもやってみれば当たるかもしれない、などという方針で挑まない方がいいです。 > 同じエラー なにと、同じですか? (想像は付きますけど、読み手の想像に任せないような書き方をして下さい)
omochiiii.exe

2020/05/04 14:09 編集

pepperleafさん 回答ありがとうございます。 申し訳ないのですが、失敗したときのパスを確認するのはどうすればよいでしょうか。 「vscode ターミナル パス 確認」等で検索したのですが、いまいち分かりませんでした…。 thnakaさん 曖昧な書き方をしてしまい、申し訳ございません。 コマンドプロンプトで「gcc --version」をたたいたところ、バージョンが表示されたので ユーザー環境変数内の「path」の「C:¥MinGW¥bin」の「\」を「\」に書き換えました。 再起動してターミナルで「gcc -o program main.c」をたたいたところ、「gcc : 用語 'gcc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。」と表示されました。
gentaro

2020/05/04 14:16

PATH通した後にVSCodeを再起動してないから変更後のPATHが反映されてない、とかそういうつまらんミスはないですかね?
pepperleaf

2020/05/04 14:16

コマンドプロンプト .. 多分、Power Shellだと思うので、 $env:path と打ち込んでください。 (普通のコマンドプロンプトなら、 PATH のみ)
pepperleaf

2020/05/04 14:21

gentaroさん、 > PATH通した後にVSCodeを再起動してないから 確かにそうですが、VSCodeの場合、jsonの設定次第で OK。多分、そこが NGでしょう。 (この辺、トラップ多数だったか)
gentaro

2020/05/04 14:37 編集

質問文に「VScodeのターミナルで」と書いてあったので気になりました。 VSCode開いてから環境変数を設定した場合、新しいターミナルを開いてもその環境変数が反映されないんで。 VSCodeのデバッグ機能とかならJSONの設定云々はわかりますけど。
omochiiii.exe

2020/05/04 14:37 編集

gentaroさん pathを変更後、PCごと再起動しています pepperleafさん ありがとうございます。 ターミナルで$env:pathと打ったところ、「C:¥MinGW¥bin;」と表示されました。
gentaro

2020/05/04 14:39

あ、「試したこと」に再起動って書いてありましたね。失礼。
gentaro

2020/05/04 14:43

ちょっとよくわかんないけど、 コマンドプロンプトでgccのパスは解決できている VSCodeのターミナルで起動したPowerShellではパスが解決できていない という現象ということでしょうか。 なんかあり得ない気がしますが…。(環境変数という意味では同じモノを使ってるので)
guest

0

自己解決

1.ユーザー環境変数ではなくシステム環境変数のpathにC:¥MinGW¥binを新規追加
2.一番上に移動
3.PCを再起動
上記の手順で無事にmain.cがコンパイルするようになりました。

凡ミスですみません。
次回からはもう少し調べてから質問するようにいたします。
回答してくださった方、大変助かりました。ありがとうございました。

投稿2020/05/04 16:45

編集2020/05/04 16:47
omochiiii.exe

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「vscode gcc」でぐぐれば解説がたくさん出てきます。
まずはこういうのを見てやってみてはどうでしょう。
その上でうまくいかないなら、そのページとともに質問してくだされば回答できると思います

投稿2020/05/04 07:10

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問