我的文件目录如下: 其中include为头文件,src文件夹下为源文件,bin下为可执行文件 一、生成CMakeLists.txt文件
# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 3.20 )
# 声明一个 cmake 工程
project(myWebServer)
# 设置编译模式
set( CMAKE_BUILD_TYPE "Debug" )
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
#将可执行文件输出到文件夹bin中
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 包含头文件所在目录
include_directories(${PROJECT_SOURCE_DIR}/include)
# 查找所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(${PROJECT_SOURCE_DIR}/src DIR_SRCS)
# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable(main ${DIR_SRCS})
二、launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/bin/${fileBasenameNoExtension}", // 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
"cwd": "${workspaceFolder}", // 调试程序时的工作目录
"environment": [],
"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台,但是最新版cpptools有BUG
"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
"setupCommands": [ // 用处未知,模板如此
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "build", // 这个地方很关键,指明task.json中的任务名称
}
]
}
三、tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build", //任务名称,launch.json会调用
"type": "shell",
"command": "mkdir build; cd ./build; cmake ../; make", //shell命令 利用CMakeLists.txt编译程序
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
|