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

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

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

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

C++

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

Q&A

解決済

2回答

7430閲覧

VScodeでビルド時エラーコード127が発生する

ma-yu

総合スコア57

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

C++

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

0グッド

1クリップ

投稿2021/06/14 02:44

編集2021/06/15 03:37

前提・実現したいこと

参考:https://qiita.com/2019Shun/items/5ab290a4117a00e373b6

VScodeで、ctrl + shift + B でビルドできるようにtasks.jsonを設定していたのですが、ある日実行できなくなりました。
作業フォルダの.vscode内を確認すると、tasks.jsonが無かったので生成しようとしましたが生成できずに困っています。

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

tasks.jsonを生成しようとすると、下記パス内のtasks.jsonが開かれるだけで、.vscodeの中は変わりません。
C:/Users/user/AppData/Roaming/Code/User

<tasks.jsonの生成方法>
1.Ctrl + Shift + Pで"Tasks:Configure Default Build Task"を選択
2."Build User Settings"が選択できるので、選択
3.C:/Users/user/AppData/Roaming/Code/Userでtasks.jsonが開かれる

作業フォルダを999_tmpとしました。

Ctrl+Shift+B実行時のターミナル

> Executing task: g++ -std=gnu++1y -g -O0 -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -o `wslpath 'D:\999_tmp\problem.exe'` `wslpath 'c:\Users\user\AppData\Roaming\Code\User\tasks.json'` < /bin/bash: run: command not found The terminal process "C:\Windows\System32\wsl.exe run /bin/bash g++ -std=gnu++1y -g -O0 -I/opt/boost/gcc/include -L/opt/boost/gcc/lib -o `wslpath 'D:\999_tmp\problem.exe'` `wslpath 'c:\Users\user\AppData\Roaming\Code\User\tasks.json'`" terminated with exit code: 127. Terminal will be reused by tasks, press any key to close it.

該当のtasks.json

json

1{ 2 "version": "2.0.0", 3 "tasks": [ 4 { 5 "label": "build", 6 "type": "shell", 7 "options": { 8 "shell": { 9 "executable": "C:\Windows\System32\wsl.exe", 10 } 11 }, 12 "command": "g++", 13 "args": [ 14 "-std=gnu++1y", 15 "-g", 16 "-O0", 17 "-I/opt/boost/gcc/include", 18 "-L/opt/boost/gcc/lib", 19 "-o", 20 "`wslpath", 21 "'${workspaceFolder}\problem.exe'`", 22 "`wslpath", 23 "'${file}'`", 24 ], 25 "group": { 26 "kind": "build", 27 "isDefault": true 28 } 29 } 30 ] 31}

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

WSL2
VSCode Version1.57.0(user setup)
Windows10 Home 20H2

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

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

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

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

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

guest

回答2

0

手元の環境で試した感じだと C:/Users/user/AppData/Roaming/Code/User にtasks.jsonが作られるのはフォルダーやワークスペースを開いていない時です。

今まで正常動作していたフォルダとは別フォルダで新規作業をしたのではないでしょうか?

  1. 一度開いているファイルを必要に応じて保存後、すべて閉じてください。
  2. ファイル メニュー下部にフォルダーを閉じる または ワークスペースを閉じる が有効になっていれば実行して閉じてください。
  3. 一度VScodeを閉じて、再度起動してください。
  4. ファイル- フォルダーをワークスペースに追加 で 999_tmp フォルダを追加してください。
  5. ファイル 名前をつけてワークスペースを保存 で適当な名前で保存してください。
  6. 999_tmpフォルダ内のcppファイルを開いてctrl - shift -B を実行。task.jsonが999_tmp.vscode フォルダ内に作成されるかどうか確認してみてください。

当該エラーは別要因があるかもしれませんが、まずは上記を試してみてください。

投稿2021/06/15 10:48

Crimson_Tide

総合スコア509

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

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

ma-yu

2021/06/16 06:46

ご回答ありがとうございます。 5.まで正常に実行できました。 6.を実行すると、.vscodeの中身は更新されず、エディタ右下に「Unexpected: Tasks can only be run in a workspace folder」とエラー表示がされてしまいました。
guest

0

自己解決

setting.json(Ctrl + , で開く)を確認したところ、下記のようになっておりました。

{ "terminal.integrated.shell.windows": "ubuntu2004.exe", "terminal.integrated.shellArgs.windows": ["run", "/bin/bash"], "files.autoSave": "afterDelay", "files.eol": "\n", "terminal.integrated.shell.windows": "C:\Windows\System32\wsl.exe" }

https://qiita.com/AokabiC/items/e9312856f588dd9303ed
を参考にし、下記の通り変更しました。

{ "files.autoSave": "afterDelay", "files.eol": "\n", }

するとビルドができ、エラーも出なくなりました。
エラーログに、「/bin/bash/ run 」という身に覚えのないものが出ているところで気が付くべきでした。

https://qiita.com/yo_kanyukari/items/37421f497b7ffaa75502
何かで上記ページを見ており、ここに記載されたsetting.jsonの一部をペーストしたことが原因です。

なぜtasks.jsonが.vscode内に生成されないかは分かりませんでしたが、解決しました。

お騒がせしてすみませんでした。

投稿2021/06/16 07:40

ma-yu

総合スコア57

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問