windows
1、環(huán)境搭建
下載cmake庵寞,選擇免安裝的版本,并將解壓后的cmake-3.22.2-windows-x86_64\bin目錄添加到環(huán)境變量
下載gcc調試器,選擇x86_64-posix-seh刮吧,并將解壓后的x86_64-8.1.0-release-win32-seh-rt_v6-rev0\mingw64\bin目錄添加到環(huán)境變量中
2、測試是否搭建成功
在cmd中輸入
gcc --version
cmake -version
沒有提示找不到就算成功
3掖蛤、下載vscode杀捻,并安裝插件
c/c++
cmake
cmake tools
4、在vscode中創(chuàng)建工程
創(chuàng)建一個簡單的c++工程蚓庭,文件目錄如下
.
├── build
├── CMakeLists.txt
├── include
│ └── swap.h
├── src
│ └── swap.cpp
└── main.cpp
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(shoot)
include_directories(include)
file(GLOB SRC "src/*.cpp")
add_executable(shoot main.cpp ${SRC})
set(CMAKE_BUILD_TYPE debug)
main.cpp
#include <iostream>
#include "swap.h"
using namespace std;
int main()
{
SWAP swap(1, 2);
swap.print_info();
swap.run();
swap.print_info();
}
swap.h
#pragma once
#include<iostream>
class SWAP
{
private:
int _a;
int _b;
public:
SWAP(int a, int b)
{
this->_a = a;
this->_b = b;
}
void run();
void print_info();
};
swap.cpp
#include"swap.h"
using namespace std;
void SWAP::run()
{
int temp;
temp = _a;
_a = _b;
_b = temp;
}
void SWAP::print_info()
{
cout<<"a = "<<_a<<" b = "<<_b<<endl;
}
5致讥、不使用vscode仅仆,單純使用cmake進行編譯
這一步可以跳過,只是為了表示vscode只是一個編輯和調用工具
進入build目錄垢袱,輸入
cmake -G "MinGW Makefiles" ..
進行makefile文件的構建墓拜,添加G "MinGW Makefiles"是因為如果你裝了vitual studio,會默認使用MSVC編譯器请契,這里強制使用gcc咳榜。
然后輸入
mingw32-make.exe
顯示
就表示代碼構建成功,此時build文件夾下面會有shoot.exe爽锥,運行就可以得到期望的結果
6涌韩、使用vscode進行代碼的調試的運行
本質上,vscode就是調用cmake進行項目的構建氯夷,所以臣樱,令人頭疼的launch.json與tasks.json其實也就只是調用cmake進行項目的編譯,然后調用gdb進行代碼的調試而已腮考。
創(chuàng)建.vscode文件夾
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe",
"program": "${workspaceFolder}/build/main" // 重要的是這里雇毫,生成的可執(zhí)行文件的路徑,改自行修改
},
"preLaunchTask": "make"
}
]
}
tasks.json
tasks.json就是純純的調用cmake進行構建秸仙,在命令行中執(zhí)行步驟5說的兩個語句
{
"version": "2.0.0",
"options": {"cwd": "${workspaceFolder}/build"},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
"-G \"MinGW Makefiles\"",
".."
]
},
{
"label": "make",
"command": "mingw32-make.exe",
},
{
"label": "build",
"dependsOrder": "sequence", // 按列出的順序執(zhí)行任務依賴項
"dependsOn":[
"cmake",
"make"
],
}
]
}
修改快捷鍵
在編輯框輸入tasks.build嘴拢,修改快捷鍵為f4
此時,就能使用f4進行makefile的重新建立(如果修改了CMakeLists.txt)寂纪,f5進行編譯調試
7席吴、測試
返回main.cpp,隨便打一個斷點捞蛋,測試是否正常
正常調試與運行孝冒,完成。
Linux
linux下與windows下大同小異拟杉,不同的地方就只有gcc與cmake的安裝庄涡,vscode的兩個配置文件的區(qū)別
可以在建立后工程后點擊這個自動生成launch.json與tasks.json(默認都選第一項,會報錯不要管)
然后將launch.json中的可執(zhí)行程序替換成camke生成的
tasks.json
tasks.json不同的地方時用make而不是mingw32-make.exe
{
"version": "2.0.0",
"options": {"cwd": "${workspaceFolder}/build"},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
".."
]
},
{
"label": "make",
"command": "make",
},
{
"label": "build",
"dependsOrder": "sequence", // 按列出的順序執(zhí)行任務依賴項
"dependsOn":[
"cmake",
"make"
],
}
]
}