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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

MinGW

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

Q&A

2回答

959閲覧

C++でhelloworldが出力できない

N.hajik

総合スコア4

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

MinGW

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

0グッド

0クリップ

投稿2023/03/19 05:02

編集2023/03/19 10:16

実現したいこと

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

前提

下記のコードをhello.cppとしてc:\Users\PC_Userに保存してあります
minGWはmingw32-baseとmingw32-gcc-g++をapplyしてあります
VSCodeはC/C++という拡張を入れています。その他の拡張は入れていません
g++ -o hello hello.cpp
./hello.exe
とVSCodeのターミナルに打ったら以下のエラーが出ました

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

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

該当のソースコード

C++

1#include <iostream> 2 3using namespace std; 4 5int main() 6{ 7 cout << "hello world." << endl; 8 return 0; 9}

試したこと

g++ -o hello hello.cppをg++ -o hello.exe hello.cppに変更 → 変化なし
dirした → 2023/03/19 には -a---- 2023/03/19 13:45 115 hello.cpp のみ

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

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

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

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

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

episteme

2023/03/19 09:46

> g++ -o hello hello.cpp この直後に dir し、できたファイル名を確認してみて。 hello? それとも hello.exe? ほかのなにか?
N.hajik

2023/03/19 10:10

115 hello.cppというファイルしかないです
episteme

2023/03/19 11:15 編集

だったら ./hello.exe だろうが .\hello.exe だろうが起動できんでしょうね。 まさかとは思うけど コンパイル失敗してませんよね?
thkana

2023/03/19 11:35

もしかしてあれかなぁ...不正ソフトウェア対策プログラムがexeを消しちゃってるとか。 gccではあまり聞いたことがないけれど。 exeまでいかないで途中でコンパイルを止めるように、 g++ -c hello.cpp とした後にdirではどうなってます? これでhello.oができていたらその疑い濃厚ですね。 多分その手のソフトは削除するときにログが残るはずだからそれを確認して(その方法についてはあなたのお使いのソフトのドキュメントを参照してください)、適用除外ができるなら試してみてください(Mcafeeはフォルダ単位での除外が出来ないんだよなぁ...)
N.hajik

2023/03/19 12:18

g++ -c hello.cppの後にdirしても特に変化ありませんでした
thkana

2023/03/19 12:51

そうすると次は-v (verbose)オプションですかねぇ。 g++ -v hello.cpp ではどんな表示がでる?
thkana

2023/03/19 14:08

あるいは、わざとエラーを埋め込んでちゃんとエラーメッセージが出るか、とか見るのも手がかりになるかも。 #include <iostreamA> とか aint main() とか
N.hajik

2023/03/20 04:53

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

2023/03/20 08:40

cc1でコケてるのかしら。メモリ不足だとコケるみたいな話は時々あるけれど。
thkana

2023/03/20 12:48

ちなみに、正常な動作の例は https://www.loose-info.com/main/varioustests/gcc/test0006.html など。これはCなのでcc1を起動していますが、C++ならcc1plusということでしょう。でcc1が立ち上がって GNU C17 (GCC) version 8.2.0 (x86_64-pc-linux-gnu) compiled by GNU C version 8.2.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version none が出るということだと思うのだけど、そこで多分プロセスが強制終了してしまっている? (結構面倒な事態だと思います)
guest

回答2

0

g++ -o hello hello.cpp
だと、出力ファイルが'hello'になってしまう気がします。

g++ -o hello.exe hello.cpp
としたらどうなるでしょう?


今試してみたら、mingwのgccは-oで拡張子は勝手に補ってくれるようですね。ということはこれは外れ。

投稿2023/03/19 08:03

編集2023/03/19 13:06
thkana

総合スコア7639

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

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

N.hajik

2023/03/19 10:11

回答ありがとうございます そのようにしましたが変わりませんでした
guest

0

Windows環境のVSCodeのターミナルでは、./hello.exeという書き方は正しくないため、エラーが発生しています。
実行ファイルを起動するには、以下のように書いてください。

.\hello.exe

投稿2023/03/19 05:07

quiz

総合スコア269

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

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

thkana

2023/03/19 08:00

> ./hello.exe' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として... というのはPowerShellのエラーメッセージですね。PowerShellは/をディレクトリ区切りとして受け付けます。 なので、ソコは間違いではないです。
cx20

2023/03/21 22:59

回答に AI が書いた文章であることを明記した方が良いかと思います。(ユーザー名でなんとなくは分かりますが・・) ■ teratailにおけるAIが生成した文章の取り扱いについて https://blog.teratail.com/entry/ai-terms > AIが生成した文章と解るように「{アルゴリズム名/サービス名}が生成した文章です」などの文言を最初の行に追加すること
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問