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

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

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

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

C++

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

Q&A

解決済

2回答

2491閲覧

VScode上C++環境構築 cmd.exeへのパスが存在しないと怒られる

shotaskovich

総合スコア1

Visual Studio Code

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

C++

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

1グッド

0クリップ

投稿2023/04/11 16:22

VScodeについて質問です。

実現したいこと

VScode上C++環境構築
エラーの除去とコードを実行できるようにしたいです。

前提

VScode上C++の環境構築をするために以下のリンクにある記述に従い、「コンパイルしてみる」の項までの設定を行いました。
ただし、VS build toolsのバージョンが2019ではなく2022だったため、
""C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/Common7/Tools/VsDevCmd.bat"",
-> ""C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools/VsDevCmd.bat"",
のように変更しました。

https://qiita.com/emo/items/8a8dc54ef33d798c324c

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

* 実行するタスク: cl.exe /Zi /EHsc /nologo /Fe: C:\C++\test.exe C:\C++\test.cpp * ターミナル プロセスが起動に失敗しました: シェル実行可能ファイル "cmd.exe" へのパスが存在しません。

該当のソースコード

test.cpp

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

試したこと

setting.jsonに以下の内容を追加しました。
また、cmd.exeとpowershell.exeにPathを通しました。

"terminal.integrated.profiles.windows": { "cmd.exe": { "path": "C:\\Windows\\System32\\cmd.exe" }, "PowerShell.exe": { "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" } }
umimiを押しています

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

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

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

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

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

Crimson_Tide

2023/04/12 08:59

[ターミナル]-[新しいターミナル]で何が開くでしょうか?そこでcmd.exeを打つとどうなりますか? WSLなどが起動するようになってないでしょうか? [試したこと] がそのままであればsettings.jsonの以下の項目をそのまま下記のように修正or追記してみてください。 "terminal.integrated.defaultProfile.windows": "cmd.exe",
guest

回答2

0

ベストアンサー

visual studioは2022から64bit化されてるから、C:\Program Files(x86)\以下ではなく、C:\Program Files\以下のほうにあるはず。

投稿2023/04/12 08:23

matukeso

総合スコア1608

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

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

shotaskovich

2023/04/12 12:29 編集

確かにC:\Program Files(x86)\以下にはありませんでした。 書き換えた後にも"spawn cmd.exe ENOENT"のエラーが出力されましたが、こちらはPathをcmd.exeファイルそのものではなく、C:\Windows\System32に対して通し、他の回答者様の解決法も実行することで解決できました。 この度はありがとうございました。
guest

0

前提

VSCode で C++ のビルドやデバッグを実行したい場合、VSCode を Developer Command Prompt for VS 2022 から開く必要があります。

Developer Command Prompt for VS 2022 を起動して、cd コマンドでプロジェクトディレクトリまで移動します。たとえば、cd C:\Users\user\dev\my-project のように移動コマンドを入力します。プロジェクトディレクトリの中で、code . というショートカットを利用して VSCode を起動します。

こうすると、ビルドとデバッグが簡単に実行できます。

本題

毎回 Developer Command Prompt for VS 2022 からプロジェクトを開くのはめんどうだ、またはリモート接続のためそれが難しいなどの理由により、Developer Command Prompt for VS 2022 の外からでも設定を変更することで、C++ のビルドとデバッグを実行できるようできます。それが、質問者さんが読んだ記事の内容です。ですが、筆者はその内容について記事内で触れていません。

上記の対応として公式で紹介されている方法が、以下の記述を .vscode/tasks.json に追加するというものです。

json

1 "version": "2.0.0", 2 "windows": { 3 "options": { 4 "shell": { 5 "executable": "cmd.exe", 6 "args": [ 7 "/C", 8 "\"C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/Common7/Tools/VsDevCmd.bat\"", 9 "&&" 10 ] 11 } 12 } 13 },

この設定を追加することにより、ビルド実行前にコマンドプロンプトで、Developer Command Prompt for VS 2022 を先に開きます。その後でビルドが実行されるようになります。

問題

ターミナル プロセスが起動に失敗しました: シェル実行可能ファイル "cmd.exe" へのパスが存在しません。

今回のエラーは、このコマンドプロンプトが見つからないというものです。

考えられる可能性としては、実行ファイル cmd.exe へのパスが通ってないか、実行ファイル cmd.exe がそもそも存在しないかの 2 つです。正直どちらも普通に Windows を使っている環境ではありえないので、何かしらの VSCode の設定が影響しているものと思います。

解決方法

追加したという設定内容を以下のように書き換えてください。

jsonc

1 "terminal.integrated.defaultProfile.windows": "cmd", 2 "terminal.integrated.profiles.windows": { 3 "cmd": { 4 "path": ["C:\\Windows\\System32\\cmd.exe"] 5 } 6 },

そして、VSCode をコマンドプロンプトか PowerShell で開いて、記事の通りビルドとデバッグを実行してみてください。

もし、これでも同様のエラーが出るようなら、本当に実行ファイルが C:\\Windows\\System32\\cmd.exe に存在しているか、「ファイル名を指定して実行」で cmd と入力してコマンドプロンプトが起動できるか確認してください。存在しない場合、OS のファイルが破損している可能性があります。その場合は、開けるシェル(PowerShell 等で)DISM /Online /Cleanup-Image /CheckHealthsfc /scannow コマンド等を利用して OS に問題がないか確認してください。

投稿2023/04/12 08:11

Demerara

総合スコア397

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

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

shotaskovich

2023/04/12 12:30

Pathにcmd.exeファイルそのものを指定していたことが問題であったようで、C:\Windows\System32に対して通し、setting.jsonの内容を回答していただいたものに書き換え、ほかの回答者様にご指摘いただいた内容を修正することで解決できました。 この度はありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.42%

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

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

質問する

関連した質問