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

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

詳細はこちら
C

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Q&A

2回答

8277閲覧

vscodeとgccでCプログラムを実行する環境作りをしたい

e-su_ka.pe

総合スコア10

C

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

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

0グッド

0クリップ

投稿2020/12/28 19:12

編集2021/01/02 05:03

前提・実現したいこと

vscodeとgccでCプログラムを実行できる環境を整えたい。
(HelloWorldプログラムが動くようにしたい)

一通り参考になりそうなサイトは読み漁り試してみたが
どうにも上手くいかず行き詰っている状況。(詳細は下記試したことの項目に記載)

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

ターミナルを開きgccコマンドを入力。
本来であればここで何も出ず進み次で
./a.exeと入力すれば実行できるはずが
以下のエラーが出て、実行できない。

vscode上でなぜかうまく認識してもらえない(?)

Error

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

該当のソースコード(現設定)

JSON

1// launch.json 2{ 3 "version": "0.2.0", 4 "configurations": [ 5 { 6 "name": "C/C++: (gdb) Launch", 7 "type": "cppdbg", 8 "request": "launch", 9 "program": "${workspaceFolder}/step.exe", // デバッグ対象へのパス 10 "args": [], 11 "stopAtEntry": false, 12 "cwd": "${workspaceFolder}", 13 "environment": [], 14 "externalConsole": true, 15 "MIMode": "gdb", 16 "miDebuggerPath": "C://MinGW//bin//gdb.exe", // gdb.exeへのフルパス 17 "setupCommands": [ 18 { 19 "description": "Enable pretty-printing for gdb", 20 "text": "-enable-pretty-printing", 21 "ignoreFailures": true 22 } 23 ], 24 "preLaunchTask": "Debug Build" // デバッグ開始時に実行するtask.jsonのタスク名 25 } 26 ] 27} 28

JSON

1// tasks.json 2{ 3 // See https://go.microsoft.com/fwlink/?LinkId=733558 4 // for the documentation about the tasks.json format 5 "version": "2.0.0", 6 "tasks": [ 7 { 8 "label": "Debug Build", // "echo"から任意のわかりやすい名前へ、launch.jsonの"preLaunchTask"等で使われる 9 "type": "process", // "shell"から"process"に変更 10 "command": "gcc", // "echo Hello"から"gcc"に変更 11 "args": [ 12 "-g", 13 "-Og", 14 "step.c", 15 "-ostep.exe" 16 ], 17 "group": { // ビルドタスクの実行(Ctrl+Shift+B)でこのタスクが実行されるようになる 18 "kind": "build", 19 "isDefault": true 20 }, 21 "problemMatcher": "$gcc" // "$tsc"から"$gcc"に変更、gccのビルドエラーがターミナルの問題にリストアップされるようになる 22 } 23 ] 24} 25 26

JSON

1// c_cpp_properties.json 2{ 3 "configurations": [ 4 { 5 "name": "Win32", 6 "includePath": [ 7 "${workspaceFolder}", 8 "C:\MinGW\include" 9 ], 10 "defines": [ 11 "_DEBUG", 12 "UNICODE", 13 "_UNICODE" 14 ], 15 "windowsSdkVersion": "8.1", 16 "compilerPath": "C:\MinGW\bin\gcc.exe", 17 "cStandard": "c11", 18 "cppStandard": "c++17", 19 "intelliSenseMode": "clang-x64" 20 } 21 ], 22 "version": 4 23}

試したこと

下記参考URLをもとに順番に構築していった。
(①~③をメインに)

まずPATHだが
PATHに関しては間違いなく通っていることを確認済み。
また優先順位の変更も済んでいる。

以下参考まで

CommandPrompt

1C:\MinGW\bin>gcc --version 2gcc (MinGW.org GCC Build-2) 9.2.0 3Copyright (C) 2019 Free Software Foundation, Inc. 4This is free software; see the source for copying conditions. There is NO 5warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ワークスペースは
C:\source\c>
で、ここに実行ファイルが保存される。

参考URL
https://ss-sholaw-wmmc.hatenablog.com/entry/2019/03/21/171012
https://qiita.com/HiroSnow0413/items/e39f75d62b8bc387470c
https://teratail.com/questions/258710

https://yaiba-study.tokyo/vscode-gcc/#toc6
https://qiita.com/OcoToOo/items/f1d0a125327f5659ad52

補足情報(FW/ツールのバージョンなど)

Windows10 Home 64bit
MinGW - Minimalist GNU for Windows

【画像1】
システム環境設定
【画像2】
PowershellによるPath確認法

json

1 \settings.json 2 "workbench.startupEditor": "none", 3 "terminal.integrated.shell.windows": "C:\WINDOWS\System32\cmd.exe", 4 "terminal.integrated.env.windows": { 5 6 //"PATH": "${workspaceRoot}\node_modules\.bin;${env:PATH}" 7 }, 8 "vsicons.dontShowNewVersionMessage": true, 9 "terminal.integrated.automationShell.linux": "" // Welcome Page を表示しない 10}

(注)"terminal.integrated.env.windows"部分は一時的にコメントアウトしております。

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

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

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

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

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

guest

回答2

0

Error表示からみて、vscodeのterminalでは、powershellが実行されています。
通常、環境変数のPATHが設定されていれば、powershellの環境変数も同じになるはずですが...
vscodeのterminalから、以下のコマンドでPATHに"MINGW"が設定さているかどうか確認してください。

powershell

1PS > $env:path.split(";")|Select-String "MINGW"

設定されていない場合は、以下の方法が考えられます。

  • 規定のshellを変更してみる。

 terminalで実行する規定のshellは以下で変更できます。
terminalの右側にあるSHELL選択のドロップダウンリストを開く
[cmd]を選択する。

  • 規定のpowershell(統合ターミナル)を使用する場合は以下で、PATHを変更してみる
    設定から、"terminal.integrated.env.windows"を設定しPATHを変更する。

 参考:VSCode のターミナルで PATH 自動設定

投稿2020/12/30 03:13

akiruno-oneone

総合スコア815

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

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

e-su_ka.pe

2021/01/01 15:43 編集

ご回答ありがとうございます! 補足情報の項目に、実行結果を貼らせていただきました!(画像2参照) 結果ですが、ちゃんと設定はされているようです。。。 2行表示されているのが少々気になる点ではございますが、、
akiruno-oneone

2021/01/02 00:40 編集

ターミナルはvscodeから開くターミナルではないのですか? vscodeから開くpowershellは通常のものとは別環境なので、確認しました。 パスが設定されていますが、このターミナルで実行できないということですか?
e-su_ka.pe

2021/01/02 04:59

すみません。勘違いしておりました。 たった今vscodeのターミナルで実行してみたところ 前回と同じ(画像2参照)結果となりました。 そこで、ご意見頂いたことの1つ目を試したところ これもやはり同様の結果でgccが認識されません。 次に、2つ目ですがどうやらこちらも 同じようです...  確認のためsetting.json(terminal.integrated)の 設定内容(一部)を捕捉に追加しておきます!
akiruno-oneone

2021/01/03 10:05

パスが通ているのであれば、問題ないと思います。 なぜエラーになるか…
guest

0

まずは、コマンドプロンプトで、

C:\source\c>

に移動した上で、gccを実行してみましょう。
どういう表示になるでしょうか

投稿2020/12/28 22:06

y_waiwai

総合スコア88038

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

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

e-su_ka.pe

2020/12/28 22:08

以下のようになりました! C:\source\c>gcc 'gcc' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
y_waiwai

2020/12/28 22:12

これは、PATHが設定されてない、ということですね PATHに、C:\MinGW\binが設定されているかを確認しましょう #設定されてなければこれを設定
e-su_ka.pe

2020/12/28 22:38

補足に画像を追加いたしました! 御覧の通り問題なさそうなのですがなぜでしょう、、、 参考までにC:\source\cの中身を載せておきます。 c ┬ .vscode ┬ c_cpp_properties.json │ ├ launch.json │ ├ settings.json │ ├ tasks.json └ HelloWorld.c
y_waiwai

2020/12/28 22:43

その設定してある C:\MinGW\bin の\は、バックスラッシュでしょうか。 同じ形の別字で、円マークの文字があります そこんとこ入力し直してみよう。 #キーボードの右上隅のキー
e-su_ka.pe

2020/12/28 22:54

環境依存文字ではなくという認識でよろしいでしょうか。 表示されている \ で入力してます。 半角英数字の円記号です。「¥」ではなく「\」です。
e-su_ka.pe

2020/12/28 22:55

キーボード右上隅キーで間違いありません!
y_waiwai

2020/12/28 23:01

なら他の文字が全角になってるとかかねえ。 ちゃんとPATHに入ってれば、どこからでもgccが実行できるはずです。 もいちど、消して入力し直してみるとかしてみれば。
e-su_ka.pe

2020/12/28 23:08

確認のため再起動致します。 それと2つ質問させてください! ①大文字小文字は関係あるのか。 例えばmingw、MinGW、Mingwなど ②システム環境変数のPath設定をしましょうというサイトや  ユーザー環境変数の設定をしましょうというサイトが見受けられたのですが  どちらが正しいのか。 以上お願いいたします!
y_waiwai

2020/12/28 23:29

Windowsであれば、大文字小文字は区別されません。どちらでもいけます #全角文字ではダメですが
e-su_ka.pe

2021/01/01 15:34

大変勉強になりました! 焦らずじっくり解決していこうかと思います! ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問