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

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

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

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

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

MinGW

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

Q&A

解決済

2回答

9243閲覧

vscodeでc++が実行できない

fk_beginner

総合スコア16

C

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

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

C++

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

MinGW

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

0グッド

1クリップ

投稿2021/09/28 12:46

#実現したいこと
vscode上で「C/C++:アクティブファイルのビルドとデバッグ」を行いデバックコンソール上に出力を得たいです。

#発生している問題
「C/C++:アクティブファイルのビルドとデバッグ」を行うとコンパイルはできているのか、exeファイルが生成されました。しかしエラーメッセージ上のpathに実行ファイルが存在するにもかかわらず、ファイルが見つからないというエラーが表示され実行できていません。

※下記のmainはmain.exe、launchはlaunch.json、tasksはtasks.jsonを指しています。

ErrorMessage

1Unable to start debugging. Program path 'C:\Users(user_name)\project\main.exe'is missing or invalid. 2 3GDB failed with message: C:\Users(user_name)\project\main.exe: No such file or directory. 4 5This may occur if the processs's executable was changed after the process was started, such as when installing an update. Try re-launching the application or restarting the machine.

main

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

launch

1{ 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "(gdb) 起動", 6 "type": "cppdbg", 7 "request": "launch", 8 "program": "${workspaceFolder}/${fileBasenameNoExtension}", 9 "args": [], 10 "stopAtEntry": false, 11 "cwd": "${fileDirname}", 12 "environment": [], 13 "externalConsole": false, 14 "MIMode": "gdb", 15 "miDebuggerPath": "C:\Program Files\mingw64\bin\gdb.exe", 16 "setupCommands": [ 17 { 18 "description": "gdb の再フォーマットを有効にする", 19 "text": "-enable-pretty-printing", 20 "ignoreFailures": true 21 } 22 ] 23 } 24 ] 25}

tasks

1{ 2 "tasks": [ 3 { 4 "type": "cppbuild", 5 "label": "C/C++: gcc.exe アクティブなファイルのビルド", 6 "command": "C:/Program Files/mingw64/bin/gcc.exe", 7 "args": [ 8 "-g", 9 "${file}", 10 "-o", 11 "${fileDirname}\${fileBasenameNoExtension}.exe" 12 ], 13 "options": { 14 "cwd": "C:/Program Files/mingw64/bin" 15 }, 16 "problemMatcher": [ 17 "$gcc" 18 ], 19 "group": { 20 "kind": "build", 21 "isDefault": true 22 }, 23 "detail": "デバッガーによって生成されたタスク。" 24 } 25 ], 26 "version": "2.0.0" 27}

#補足
mingw-w64 は built 4.3.5
vscode は version16.9.311112.23です

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

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

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

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

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

guest

回答2

0

vscodeは知らないのですが

"program": "${workspaceFolder}/${fileBasenameNoExtension}",

これって合ってます?

たぶん${fileBasenameNoExtension}って現在開いているファイルの名前から拡張子を除いたものになるのでは。

たとえばこれを無理やり(?)

"program": "${workspaceFolder}/main.exe",

にしたらどうですか?

あるいは

"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",

投稿2021/09/28 12:59

編集2021/09/28 13:02
itagagaki

総合スコア8402

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

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

fk_beginner

2021/09/28 13:03

ご回答ありがとうございます。 tasks.jsonやlaunch.jsonどちらもそれぞれ/main.exeに変更してみましたが、同じエラーメッセージが出て実行することはできませんでした。
guest

0

自己解決

実験してみたところ"c:/user"などのマルチバイト文字がアドレスに含まれないディレクトリでは動作しました。
逆に日本語が含まれているディレクトリや"あああ.cpp"などの日本語が含まれているファイルではうまく動作しませんでした。

よって原因はMinGW -w64関連の一部デバッグ機能が日本語(マルチバイト文字)対応していなかったことでした。(プログラミングやコンピューターに関しては初心者のため間違っている可能性あり)

質問内容に記述されている情報からは解決できない問題でした。
ご回答いただいた方々には、わざわざお手数おかけしました。


2021/12/13/00:37追記
久しぶりに同じようなマルチバイトを含むディレクトリでminGW使ったらコンパイルも実行もできました...
マルチバイト文字が原因なのは確かなのですが、minGWが原因とは限らないようです。質問時点の環境がもうないのでこれ以上調査できませんが同じ問題が起こった方は注意してください。

投稿2021/09/28 15:00

編集2021/12/22 15:38
fk_beginner

総合スコア16

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

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

y_waiwai

2021/09/28 19:24

そういうトラブルを避けるために、ユーザ名はアルファベットのみにしましょう と言っても、既存のユーザフォルダ名は変えられないので、新規のアカウントを作って引っ越すことになりますが。 んで、アカウントを作るときは、マイクロソフトアカウント、ではないアカウントを作りましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問