下载VSCode
VSCode的标语是Code editing.Redefined.
特点是Free. Open source. Runs everywhere.
点击跳转到code首页下载
检查C语言环境
主要包括以下几个命令:
- cmake
- make -v
- gcc/g++ -v
- lldb -v
其中,前两个命令用来运行
- CMakeLists.txt
- MakeFile
没有这几个命令的话需要安装
编写CMakeLists.txt
需要配置多个目录下的多个文件的编译,目录结构如下:
.
├── bin
├── build
└── src
├── cJSON
│ ├── LICENSE
│ ├── README
│ ├── cJSON.c
│ ├── cJSON.h
├── convert
│ ├── chardata.cpp
│ ├── charutil.cpp
│ ├── charutil.h
│ ├── charwrap.cpp
│ └── charwrap.h
└── main.cpp
src是主目录,包括文件main.cpp和两个目录。
主目录,和每个子目录都需要写CMakeList.txt
这个是主目录下的CMakeList.txt
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
if(CMAKE_CL_64) #CMAKE的内建变量,如果是true,就说明编译器的64位的,自然可以编译64bit的程序
set(ADDRESS_MODEL 64)
set(NODE_TARGET x64)
else()
set(ADDRESS_MODEL 32)
set(NODE_TARGET x86)
endif()
set(CMAKE_BUILD_TYPE "Debug")
# 项目信息
project (demo)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
# 添加子目录
add_subdirectory(cJSON)
add_subdirectory(convert)
# 指定生成目标
add_executable(demo main.cpp)
# 添加链接库
target_link_libraries(demo cJSON)
target_link_libraries(demo convert)
这个是子目录下的CMakeList.txt,记得修改多个目录下的名字,这里以convert为例
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
# 生成链接库
add_library (convert ${DIR_LIB_SRCS})
配置之后的目录结构如下:
.
├── bin
├── build
└── src
├── CMakeLists.txt
├── cJSON
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README
│ ├── cJSON.c
│ ├── cJSON.h
├── convert
│ ├── CMakeLists.txt
│ ├── chardata.cpp
│ ├── charutil.cpp
│ ├── charutil.h
│ ├── charwrap.cpp
│ └── charwrap.h
└── main.cpp
开始编译
生成MakeFile
cd build
cmake ../src
运行MakeFile
cd build
make
如果提示100% 一般就是编译成功了,不成功的话,原因多种多样,需要对应错误查找办法,这里是成功的提示:
[ 87%] Built target cJSON
[ 95%] Built target convert
[100%] Built target Demo
编写VSCode任务
调出命令行Ctrl+Shift+P,输入Task,选择任务配置,
这个时候发现目录下多个.vscode/task.json
附例子
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": [
// Ask msbuild to generate full paths for file names.
"-C",
"build"
],
"group": "build",
"presentation": {
// Reveal the output only if unrecognized errors occur.
"reveal": "silent"
},
}
]
}
编写VSCode执行配置
调出命令行Ctrl+Shift+P,输入launch,选择任务配置,
这个时候发现目录下多个.vscode/launch.json
附例子
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/Demo",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"targetArchitecture": "x64",
"environment": [],
"preLaunchTask": "build",
"externalConsole": true,
"MIMode": "lldb"
}
]
}
开始Debug
在代码中设置断点
我这里就是在main函数第一行设置的断点,方便查看
在VSCode中F5,查看输出
...
1 warning generated.
[100%] Linking CXX executable Demo
[100%] Built target Demo
终端将被任务重用,按任意键关闭。
可以看出已经成功跳转到断点