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

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

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

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

Q&A

解決済

2回答

3699閲覧

コンパイルと実行をCtrl shift bで行いたい

yuki_nam

総合スコア28

C++

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

0グッド

0クリップ

投稿2021/09/18 06:47

編集2021/09/18 12:09

VscodeでC++を行う際に今までは例えばmain.cppというC++で記述するファイルがあった場合にCtrl shift bでコンパイルしてmain.exeをいうファイルが生成されこのexeファイルを.\main.exeとターミナルに書き実行していました。しかし、段々と面倒に感じてきて1回の操作でコンパイルから実行まで出来るようにしたいと思いました。そこでネットで結構調べたのですがどれも記事が今のバージョンより前であることや私の知識不足でネットの記事を応用して自分で書き換えることが出来ません。今のtasks.jsonは以下のようにしています。どこをどうすればコンパイルから実行までCtrl shift bだけで行えるようになりますか?

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",
"type": "shell",
"command": "g++",
"args": ["-g","${file}", "-o", "${fileBasenameNoExtension}"],
"group":{
"kind": "build",
"isDefault":true
}
}
]
}

この記事を参考にtasks jsonを記述しましたがうまくいきませんでした。
https://qiita.com/inomu/items/09f68c2f4b67352b8412

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

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

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

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

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

BeatStar

2021/09/18 13:37

必ず『Ctrl shift b』でしょうか? 単に一括でやるだけならいくつか思い浮かぶのですが。
BeatStar

2021/09/18 13:40

それと、『必ずショートカットのみか』ですね。 一括でできるのなら(ターミナルとかの)コマンドとかでできそうですし
yuki_nam

2021/09/18 14:13

いえ、Ctrl shift bでなくてもなるべくターミナルでコマンドを打たずに実行をしたいだけなので違うキーでも大丈夫です。すみません
BeatStar

2021/09/18 14:32

コマンドを打ちたくないのは、『長くなるから』でしょうか。 もしそうなら代用が思いつきますが。 もし一文字も打ちたくないという意味だとちょっと私には…
yuki_nam

2021/09/18 15:37

いえ、短縮したいだけなのでそれでも良ければ教えて頂けないでしょうか?
yuki_nam

2021/09/18 15:38

ありがとうございます。
guest

回答2

0

ベストアンサー

拡張機能のCode Runnerを使うと、ショートカットキーでビルドから実行までできるようになります。
設定 (setting.jsonを修正) する必要はありますが、ソースファイルが一つだけの簡単なプログラムでしたら、一度設定すれば後は特別な操作は必要無いです。
「Code Runnerを使いこなす」が参考になると思います。

後は、毎回デバッガーを起動することになりますが、デバッグ構成 (launch.json) に"preLaunchTask"を追加することにより、デバッグする前に自動的にビルドするようになります。
「VSCodeデバッグ前に任意のタスクを実行させる」が参考になりと思います。
リンク先はTypeScriptでの開発ですが、C/C++でも基本的に設定方法は同じです。

投稿2021/09/19 00:03

Bull

総合スコア986

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

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

0

VSCodeは単なるエディタなので、私なら大きく分けると2種類思い浮かびますね。

方法1: スクリプトによる一括化

PowerShellとして起動しているならps1ファイル、Windowsのコマンドプロンプトとしてであればbatファイル、✳︎nix系ならbashファイル等のような、スクリプトにしておく。

例:

g++ -o main.exe main.cpp main.exe

これをbuild.batとかとすると、

build

だけでコンパイルから実行までできます。

※ ただし、コンパイルに失敗したら…

方法2: make系ツールを用いる

makeコマンドcmakeコマンドのようなツールを使って行う。

その場合は

make make run

とかみたいにするか、

make clean

のような感覚でまとめておき、

make building

とかみたいな感じで動かすとか。

makeの場合は使ってみた感じ、シェルスクリプト(Windowsだとbatファイルに近い)っぽいです。

なので、makefileの中身を

main.exe: main.cpp class1.cpp g++ -o main.exe main.cpp class1.cpp main

のようにまとめておくこともできるっぽいです。
※ ケータイからの回答なので、tabキーが使えず、半角スペースで代用しています

makeファイルとかは書き方がちゃんと決まっているようですが、上はあくまで例として。

まあ、どのみちファイルを追加したらすると毎回書く羽目になるかと思いますが、
一度書けば(追加や削除をしない限り)ほぼ一つのコマンドで、比較的短い文字数でできるはずです。

ただし、方法2はmakeなりcmakeなりがないとできないし、書き方や使い方も学ばないといけないのでハードルはかなり高めだと思いますが、慣れたら楽に感じますね。

方法1でも、PowerShell上でps1ファイルを動かす場合はデジタル署名の関係がややこしく感じるかもしれません。
ですが、Windows上ならcmdとして batファイルを使えば良いはずです。

もうちょっと考えると他の方法として、方法1,2を組み合わせた感じで、
PythonなりC++なりで作った自分用のツールを使って…もありえますが、これは面倒そうなのであまり…

思いつくのはこれぐらいですね。

投稿2021/09/18 16:12

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問