Ubuntu下使用VSCode的launch.json及tasks.json编写
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu下使用VSCode的launch.json及tasks.json编写
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
程序
調試
遇到的問題及解決方式
拓展
預定義變量#
預定義變量示例:
?
tasks用于在launch前執行任務,launch用于讀取執行文件。
這兩者經常組合起來用于需要編譯語言的自動編譯+自動執行,下面以C++、Rust和Typescript為例。
程序
工作區包含main.cpp、頭文件夾include以及文件夾中的h文件、src文件夾以及文件夾中的cpp文件。
.vscode是后面生成的,不用管。
在swap.h文件中對類進行了聲明,在swap對類進行了定義,然后在面函數中使用類。
swap.h文件
#pragma once #include<iostream> using namespace std; class Swap {public:Swap(int a, int b){this->_a = a;this->_b = b;}void run();void printInfo();private:int _a;int _b; };?swap.cpp
#include"swap.h"void Swap::run(){int temp;temp = _a;_a = _b;_b = temp; } void Swap::printInfo() {cout << "_a = " << _a << endl;cout << "_b = " << _b << endl; }?main.cpp
#include <iostream> #include "swap.h"int main() {Swap myswap(10, 20);myswap.printInfo();myswap.run();myswap.printInfo();cout << "After swap" << endl;return 0; }調試
run->g++
遇到的問題及解決方式
1.最開始是使用g++命令能夠成功執行程序,但是使用VSCode就報錯,即h文件沒有包含;
解決方式:
在tasks.json文件的args參數中加上圖中方框中的命令,注意前一句需要加上逗號!
?
"-I", "${workspaceFolder}/include"?2.將頭文件包含后報錯,對類的成員函數未引用;
重新執行顯示未引用,因為上面的tasks.json文件只編譯了main.cpp 沒有編譯swap.cpp
?解決方式:
將swap.cpp加到-g命令后就行
"-g", "${file}", "${workspaceFolder}/src/swap.cpp",?如果有更多的cpp文件,也能這樣解決。
拓展
預定義變量#
支持下面的預定義變量:
- ${workspaceFolder}?- 當前工作目錄(根目錄)
- ${workspaceFolderBasename}?- 當前文件的父目錄
- ${file}?- 當前打開的文件名(完整路徑)
- ${relativeFile}?- 當前根目錄到當前打開文件的相對路徑(包括文件名)
- ${relativeFileDirname}?- 當前根目錄到當前打開文件的相對路徑(不包括文件名)
- ${fileBasename}?- 當前打開的文件名(包括擴展名)
- ${fileBasenameNoExtension}?- 當前打開的文件名(不包括擴展名)
- ${fileDirname}?- 當前打開文件的目錄
- ${fileExtname}?- 當前打開文件的擴展名
- ${cwd}?- 啟動時task工作的目錄
- ${lineNumber}?- 當前激活文件所選行
- ${selectedText}?- 當前激活文件中所選擇的文本
- ${execPath}?- vscode執行文件所在的目錄
- ${defaultBuildTask}?- 默認編譯任務(build task)的名字
預定義變量示例:
假設你滿足以下的條件
下面的預定義變量則代表:
- ${workspaceFolder}?-?/home/your-username/your-project
- ${workspaceFolderBasename}?-?your-project
- ${file}?-?/home/your-username/your-project/folder/file.ext
- ${relativeFile}?-?folder/file.ext
- ${relativeFileDirname}?-?folder
- ${fileBasename}?-?file.ext
- ${fileBasenameNoExtension}?-?file
- ${fileDirname}?-?/home/your-username/your-project/folder
- ${fileExtname}?-?.ext
- ${lineNumber}?- 光標所在行
- ${selectedText}?- 編輯器中所選擇的文本
- ${execPath}?- Code.exe的位置
總結
以上是生活随笔為你收集整理的Ubuntu下使用VSCode的launch.json及tasks.json编写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何关闭multiproce
- 下一篇: stringstream用法总结