質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.39%
C

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Q&A

解決済

2回答

678閲覧

CでHelloWorldしようとするとエラーが出る

N.hajik

総合スコア5

C

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

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

0グッド

0クリップ

投稿2024/08/23 00:47

編集2024/08/23 11:43

実現したいこと

vscodeとMinGWでC++でhelloworldを出力したい

前提

Windows10,MinGW,VSC
環境変数PathにC:\MinGW\binを入力済み
下記のコードをHelloWorld.cとしてc:\MyProgramsに保存してあります
minGWはmingw32-baseとmingw32-gcc-g++をapplyしてあります
VSCodeはC/C++,Japanese Language Pack for Visual Studio Codeという拡張を入れています。その他の拡張は入れていません
g++ -o HelloWorld HelloWorld.c
./HelloWorld
とVSCodeのターミナルに打ったら以下のエラーが出ました

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

./HelloWorld : 用語 './HelloWorld' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれてい場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1

  • ./HelloWorld
  • + CategoryInfo : ObjectNotFound: (./HelloWorld:String) [],CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

該当のソースコード

C

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

試したこと

g++ -o HelloWorld.exe HelloWorld.cに変更 → 変化なし
./HelloWorld.exeに変更 → 変化なし
C:\MyProgramsを確認したところg++~の後にもexeファイルは見当たらなかった

PS C:\MyPrograms> gcc -v HelloWorld.c
Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i586'
c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/cc1.exe -quiet -v -iprefix c:\mingw\bin../lib/gcc/mingw32/6.3.0/ HelloWorld.c -quiet -dumpbase HelloWorld.c -mtune=generic -march=i586 -auxbase HelloWorld -version -o C:\Users\PC_User\AppData\Local\Temp\cc0KxKWP.s

わざとエラーを誘発し(int→aint)てみたが変化なし(別のエラー表示なし)

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

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

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

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

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

otn

2024/08/23 10:50

> 下記のコードをHelloWorld.cとしてc:\Users\MyProgramsに保存してあります と書いておきながら、Powershellコンソールでは、 PS C:\MyPrograms> gcc -v HelloWorld.c と書いてありますね。 c:\Users\MyProgramsとc:\MyProgramsどっちが正しいのでしょう? そのあたりが混乱しているのでは?
N.hajik

2024/08/23 11:42

コメントありがとうございます。 申し訳ありません。C:\MyProgramsが正しいです。 別の質問を改変して質問を打ったため直し忘れていました。
N.hajik

2024/08/23 11:52

修正しました。
otn

2024/08/23 12:54

> とVSCodeのターミナルに打ったら以下のエラーが出ました VSCodeの設定のどこがどうなっているのか分からないので、 普通に、Windowsのスタートメニューから、PowerShell またはコマンドプロンプトを起動して、その画面で、 cd C:\MyPrograms gcc -o HelloWorld HelloWorld.c .\HelloWorld を入力してみましょう。
thkana

2024/08/24 00:41

不正ソフトウェアの対策ツールが.exeを悪い奴と誤判別して消しちゃう(隔離しちゃう)という振る舞いに見えます。 その手のツールのログを見てみたらなにか情報が得られないでしょうか。 でも、 > わざとエラーを誘発し(int→aint)てみたが変化なし(別のエラー表示なし) これもとても気になります。なにか根本的に間違っている、ということになりますので。 verboseの結果もcc1で終わってるのってどうなのかしら。
thkana

2024/08/24 00:44

わざとダミーのHelloWorld.exeを置いて、それがコンパイル後に残っているかどうか調べる、というのは調査として有効かな。消えていなければコンパイルプロセスの問題、消えていたら不正ソフトウェア対策ツールの疑い濃厚。
N.hajik

2024/08/24 06:16 編集

皆さま回答ありがとうございます。 cmdで cd C:\MyPrograms gcc -o HelloWorld HelloWorld.c としたところ cc1.exe-アプリケーションエラー アプリケーションを正しく起動できませんでした(0xc0000279)。[OK]をクリックしてアプリケーションを閉じてください。 とポップアップしました。 不正ソフトウェア対策はWindousDefender以外には入れた記憶がありません。もしかしたら何かしらのアプリの付属で入れてしまった可能性は否定できませんが、、、 ダミーの~に関しては、MyPrograms内にHelloWorld.exeを作って、VSCodeでもcmdでもgcc~をしてみましたが、変化はありませんでした。
melian

2024/08/24 06:50

> minGWはmingw32-baseとmingw32-gcc-g++をapplyしてあります > cc1.exe-アプリケーションエラー cc1.exe の実行に失敗している様ですが、お使いの PC は 32bit CPU 搭載なのでしょうか? そうではなく、64bit CPU という事であれば MinGW-64 をインストールする方がよいかと思います。 MinGW-w64 https://www.mingw-w64.org/
N.hajik

2024/08/24 07:09

コメントありがとうございます。 64bitでした。 現在外出中ですので、帰宅後64bit版で試してみようと思います。
hiroki-o

2024/08/24 07:38

64bit環境で、32bit版MinGWを試してみましたが、問題ありませんでした。 64bit版で上手くいくといいのですが。
otn

2024/08/24 12:41

> cc1.exe-アプリケーションエラー なので、起動後のエラーですね。64bitOSでも32bitアプリは動くはずなので、そのあたりの問題はないと思っていましたが、あえて32bit版をインストールする必要も無いのは確か。 msvcrtの違いなのか? (MinGW/MigGW-w65/MSYS/MSYS2のCプログラムは、MicrosoftのCのDLLを使います)
thkana

2024/08/25 00:23

> cc1.exe-アプリケーションエラー とりあえずその時点で.exeが生成されなくて当然、ということになります。 cc1.exeはgccのコンパイラの中の一つのモジュールなので、それがエラーを起こすということは、ファイルが壊れていたりなにか足りなかったりと、gccの構成周りになにか問題がある、という気配を感じます。一旦gccやMinGWをアンインストールしてインストールし直したら...という話になりそうな。 (今回であれば32bit環境は捨てて64bit版でどうなるか、というのもありですね)
guest

回答2

0

ベストアンサー

[香車]東上☆あらし☆海美「
C/C++ の勉強が目的なら、おとなしく、IDE の Visual Studio を使いましょう。

投稿2024/08/23 10:08

umimi

総合スコア474

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

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

N.hajik

2024/08/23 11:45

回答ありがとうございます。 MineGWを勧める記事や動画が多かったので、そうしました。 この質問で解決しなかった場合調べてみようと思います。
N.hajik

2024/08/24 06:27

無知ですみません、VisualStadioはVisualStadioCodeに比べてどのように初心者向けなのでしょうか
hiroki-o

2024/08/24 07:33

Visual Studioは、最初からエディタとコンパイラが一体化されています。 厳密にいうと、C/C++はデフォルトでは入らなくて、インストール時にC++ワークロードの選択が必要ですが。 それでも、Visual Studio CodeとMinGWの組み合わせよりは簡単だと思います。
thkana

2024/08/25 00:17

Visual Studioだってバリバリのプロ用ツールであって、決して「初心者向け」ツールではありませんよ。その辺りの覚悟は必要と思います。 でもVisual Studio Codeの方が一層「初心者向け」でないだけです。 以下「正確な説明」ではありません。が、全然間違いでもないはずです。 もともとは、Visual C/C++とかVisaul Basicとかの開発用に、それぞれが必要なもの(=エディタとかコンパイラとかデバッガとか)がセットになったものがVisual Studio(以下VS)として売られていました。 でも、その中身は、言語は違うけどプログラムを編集したり実行してデバッグする時の操作は大同小異。なので、VSのプログラム編集部分を切り出したものをベースに、既存の言語ツールとの接続は「拡張機能」で行うような別の製品を分岐させました。それがVisual Studio Code(以下VSCode)です。(以上は私の想像を多分に含みます。実際には全く別のルーツなのに作った会社が同じだったので似た名前になっただけかも知れません) VSでは(今は複数の言語の対応になってはいますが)全てがパッケージになっているので、言語を選べばほぼその開発が始められます。製品として、そのように動作することが保証されています。 一方、VSCodeは、基本はエディタでしかなく、IDEとして動作させるには全く別個に設計されたコンパイラ、デバッガなどを「拡張機能」を経由して正しく設定し、繋げてやる必要があります。それはユーザーの責任になります。 VSCodeは設定の必要がある、とはいえ、大抵の場合初期設定とよく使われる拡張機能でうまく動作してくれます。上手くいったひとは例えばネット上に「これでやろう」みたいな話を書きます。ところが、なにかの原因で上手くいかなかったとき...拡張の仕組みを理解していて適切に対応できる人は多くはありません。当然ながら、初心者には手も足も出ない、ということになります。 TeratailやYahoo!知恵袋などのQ&Aサイトを見ていると、そういう"VSCodeでうまくCのコンパイルやデバッグができないがどうしたら?"という質問が散見され、結局解決しないこともしばしばです。全体としては決して多くはない数かも知れませんが、でも(特に初心者にとっては)無視できないリスクがある、と言ってもいいレベルだと思います。 なお、今回はVSCodeそのものというよりはMinGW/gccのレベルの問題の気配も漂ってきました。 MinGWを入れてgccを入れて...という段階でも手数が増えればトラブルの機会も増えるので、その点でもVSCode+MinGWがVSに比べて初心者向けではないというのは言えると思います。 個人的には、Code::blocksというオープンソースのC/C++用の開発環境がコンパクトにまとまってそうに思います。MinGW+gccを自分で抱えているのでトラブルも少なそう。まぁ、ちょっと見栄えや作りが古いのと、基本的には日本語化されていないのが難点といえますが。(探せば同様のものは他にもあるでしょう)
N.hajik

2024/08/25 06:41

他の回答、コメントくださった皆さまもありがとうございました。 64bit版等も試みましたが、上手くいかなかったのでVisualStudioを使ったところ、問題なくできました。
jimbe

2024/08/25 08:32

コードを書いてコンパイルして実行したら文字列が表示される、というだけを目的にすれば、パソコンに環境を作る以外にネットで提供されている環境を使う手もあります。 広告と取られてしまうかもしれませんが、例えば私は teratail の質問の短くコンソール入出力で済むものの動作確認に paiza.io を良く使っています。
guest

0

そのエラーは、HelloWorld.exe という名前のファイルがないから出てるもんです。
なので、そのファイルがそこにあるかを確認しよう。

なかったのなら、なぜないのか、作るにはどうするのか、をがんばって勉強しよう

投稿2024/08/23 02:28

y_waiwai

総合スコア87981

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

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

N.hajik

2024/08/23 09:43

回答ありがとうございます。 コンパイルしようとg++ -o HelloWorld HelloWorld.cをしたところ、HelloWorld.exeが作られなかったので質問させていただきました。どのようにすれば作られるのか、ご教授頂けますか?
y_waiwai

2024/08/23 11:31

どこかC言語の入門記事を見つけて、その通りにやってみてはどうでしょうか。 適当にやってできるもんではないですよ
N.hajik

2024/08/23 11:40

お返事ありがとうございます。 Youtube上の動画やネット上の記事を見ながら三周ぐらいやり直したのですが、同じ結果でした。 決して我流にしているわけではないです。
y_waiwai

2024/08/23 11:43

それでできないってならその記事が間違ってるってことなので、別の記事を探してみては
N.hajik

2024/08/23 11:51

お返事ありがとうございます。 申し訳ありませんが、他の記事でも同様の運びとなっているのでこのサイトで質問させていただきました。 もし私の理解力に問題があると感じられても、具体的にどこが間違っている(問題となっている)のかをお教えいただければ幸いです。
y_waiwai

2024/08/23 11:57

ならその記事のアドレスを提示しましょう。 その記事が間違ってるのか、あなたがデタラメしてるのか、それでわかるでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問