文件结构树
- LKOpticlaFlow //工程文件夹
- .vscode //控制程序的编译、运行
- launch. json
- tasks.json
- build.sh
- bin //可执行文件存放的文件夹
- LKOpticlaFlow
- build //cmake外部编译生成的文件都在这个文件夹中
- main.cpp //主程序
- CMakeLists.txt //cmake文件
- .vscode //控制程序的编译、运行
launch. json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "LKOpticlaFlow GDB",//配置名称,默认就行
"type": "cppdbg", //配置类型,不要改
"request": "launch",//请求配置类型,可以为launch(启动)和attach(附加)
"program": "${workspaceFolder}/bin/LKOpticalFlow",//将要进行调试的可执行程序
"args": [],//程序调试时需要传达的参数,没有就空着
"stopAtEntry": false, //程序在程序入口处暂停,一般设为false
"cwd": "${fileDirname}",//工作目录,一般为默认
"environment": [],
"externalConsole": false,//是否额外显示控制台窗口,false为不显示
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "echo"//调试会话开始前执行的任务,和task绑定的纽带
}
]
}
launch只是运行和调试,而可执行文件的生成需要利用task.json!
菜单栏点击“终端”,选择“配置任务”,选择“others”
task.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo", //需要和launch里的"preLaunchTask": "echo"相对应,
//意思是,要执行launch的内容要先执行label为echo的任务
"type": "shell",//task的类型为shell语言,这个和下面的command命令相对应
"command": "bash .vscode/build.sh"//执行.vscode/build.sh这个shell脚本
}
]
}
build.sh用来执行cmaked外部编译
cmake常用的命令可以参考我的另一篇文章
build.sh
!#bin/bash
mkdir build
cd build
cmake ..
make -j4