vscode 和 sourceinsight 比,各有优点。
vscode 可以安装各种插件方便使用。
-
1. 安装vscode
-
2. 安装 msys2,安装 gcc 和 gdb工具。
https://blog.csdn.net/Jasper_Li_/article/details/87734482
记得 把 D:\Program Files\msys2\usr\bin 加到 Window 10 的 系统环境变量 path 中。
启动 cmd ,执行 gcc -v , make -v , gdb 检查下载和安装环境等是否有输出。
-
3. 配置vscode + msys2
https://blog.csdn.net/qq_31841025/article/details/88567787
-
4. gdb创建代码软链接
gdb 调试时,报找不到文件错误,
Unable to open : Unable to read file (Error: File not found
是环境路径的问题,我把 msys2 安装到了D盘,则msys2默认的根目录是 d盘,代码在e盘。
需要一个映射
mklink /D d:\e e:
把行命令放到一个 扩展名为 reg的文件中,右键管理员权限运行,即可吧\d:\e\ 链接到e盘。
可以执行gdb 调试的 配置文件,和Makefile,把makfe放到源代码目录下,即可使用。
settings.json
{
"workbench.colorTheme": "Visual Studio Dark",
"C_Cpp.updateChannel": "Insiders",
"C_Cpp.default.compilerPath": "D:/Program Files/msys2/mingw64/include",
"C_Cpp.default.intelliSenseMode": "gcc-x64",
"terminal.integrated.shell.windows": "D:/Program Files/msys2/usr/bin/bash.exe",
"terminal.integrated.env.windows": { "CHERE_INVOKING":"1" },//导入bash环境,重要
"terminal.integrated.shellArgs.windows": [ "--login" ] //导入bash环境,重要
}
task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "make",
"type": "shell",
"command": "make", // 先用cmd 运行 make -v, 表示支持make命令
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"echo": false,
"focus": true
},
}
]
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/Demo.exe", //此目录下有makefile文件
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode" : "gdb",
"preLaunchTask": "make",
"miDebuggerPath": "D:/Program Files/msys2/usr/bin/gdb.exe",//msys2 gdb.exe 目录
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
}
]
}
这个Makefile 比较通用。
修改输出的目标文件为 Demo,可以改成其他名字。
BIN_OBJECT = Demo
CFLAGS += -I./A -I./B -I`pwd` -Wall -g -O2 -D __PLATFORM_LINUX -D _DEBUG
#LDFLAGS = -L ./ -lalgorithm,如果有库加,CFLAGS -g 才能调试
CFLALG 编译命令,LDFLAGS 链接命令:
-I ./A 表示 Makefile 同级目录下 A 文件夹 头文件路径,可以改。
-g 表示有符号表,发布程序时关闭。
-D _DEBUG 类似在所有c文件中加了 #define _DEBUG
-L ./ -lalgorithm 有个库文件,libalgorithm.a 或 libalgorithm.so
以上根据情况修改。
Makefile
DIRS := $(shell find . -maxdepth 3 -type d) #最大3层目录
SRC = $(foreach dir,$(DIRS),$(wildcard $(dir)/*.c)) #wildcard 搜索同级目录C文件
DIR = $(notdir $(SRC))
OBJS = $(patsubst %.c, %.o, $(SRC)) #
CFLAGS += -I./A -I./B -I`pwd` -Wall -g -O2 -D __PLATFORM_LINUX -D _DEBUG
#LDFLAGS = -L ./ -lalgorithm,如果有库加,CFLAGS -g 才能调试
BIN_OBJECT = Demo
.PHONY:all
ls -l
all:$(BIN_OBJECT)
$(BIN_OBJECT):$(OBJS)
$(CC) -g -o $@ $^ $(LDFLAGS)
%.o:%.c
$(CC) $(CFLAGS) -o $@ -c $<
#$(SRC:.c=.o): *.h
# @echo $(SRC)
# @echo $(DIR)
# @echo $(OBJS)
# @echo "Done!!!!!!"
clean:
-rm -rf $(LOG) *.o */*.o
以上准备OK, 按 F5 即可进入gdp 调试