目录
参考
【C/C++】在VSCode中配置C/C++环境(使用gdb和code-runner两种方式配置)
准备工具
安装VSCode编辑器
下载安装
安装C/C++插件
安装MinGW-w64编译器:
下载
注意:要下MinGW-w64版本,不要下成别的版本(比如MinGW-32)
安装
注意安装目录不要有空格或者特殊字符
安装完之后,在目录下会有bin目录会有所有程序,下图我是安装在D:/c/mingw64
配置环境变量
点击我的电脑-》属性-》环境变量设置
新建Path,选择增加刚刚安装的所有指令
测试
在任意位置打开cmd,输入gcc -v查看版本,说明安装成功
demo工程
新建文件夹demo
然后vscode直接打开
新建demo
配置CMakeLists.txt
cmake_minimum_required (VERSION 3.24)
project (Demo)
# 设置C编译器的调试选项
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
# 设置C++编译器的调试选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
# 定义变量
if (BUILD_PLATFORM STREQUAL rv1126)
message("this is rv1126 platform")
elseif (BUILD_PLATFORM STREQUAL window)
message("this is window platform")
else()
message("this is x64 platform")
endif()
# ************** 指定头文件目录 *********************** #
include_directories(${CMAKE_SOURCE_DIR}/src)
include_directories(${CMAKE_SOURCE_DIR}/src/log)
include_directories(${OpenCV_INCLUDE_DIRS})
file(GLOB_RECURSE HEADERS "${CMAKE_SOURCE_DIR}/src/*.h")
foreach(loop_var IN LISTS HEADERS)
message("path: ${loop_var}")
endforeach()
file(GLOB_RECURSE SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp" "${CMAKE_SOURCE_DIR}/src/*.c")
foreach(loop_var IN LISTS SOURCES)
message("SOURCES path: ${loop_var}")
endforeach()
add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} )
配置编译build.bat
:: create dir
echo "start build ..."
set BUILD_DIR=build
md %BUILD_DIR%
md bin
cd %BUILD_DIR%
set GCC_COMPILER=D:/c/mingw64/bin/
:: 构建
cmake .. -DBUILD_PLATFORM=window -DCMAKE_MAKE_PROGRAM="D:/c/mingw64/bin/make.exe" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
:: 安装
make -j4
执行编译
运行build.bat脚本执行编译
PS D:\workspace\c\demo> .\build.bat
D:\workspace\c\demo>echo "start build ..."
"start build ..."
D:\workspace\c\demo>set BUILD_DIR=build
D:\workspace\c\demo>md build
子目录或文件 build 已经存在。
D:\workspace\c\demo>md bin
子目录或文件 bin 已经存在。
D:\workspace\c\demo>cd build
D:\workspace\c\demo\build>set GCC_COMPILER=D:/c/mingw64/bin/
D:\workspace\c\demo\build>cmake .. -DBUILD_PLATFORM=window -DCMAKE_MAKE_PROGRAM="D:/c/mingw64/bin/make.exe" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
CMake Error at CMakeLists.txt:45:
Parse error. Function missing ending ")". End of file reached.
-- Configuring incomplete, errors occurred!
D:\workspace\c\demo\build>make -j4
make: *** No targets specified and no makefile found. Stop.
PS D:\workspace\c\demo> .\build.bat
D:\workspace\c\demo>echo "start build ..."
"start build ..."
D:\workspace\c\demo>set BUILD_DIR=build
D:\workspace\c\demo>md build
子目录或文件 build 已经存在。
D:\workspace\c\demo>md bin
子目录或文件 bin 已经存在。
D:\workspace\c\demo>cd build
D:\workspace\c\demo\build>set GCC_COMPILER=D:/c/mingw64/bin/
D:\workspace\c\demo\build>cmake .. -DBUILD_PLATFORM=window -DCMAKE_MAKE_PROGRAM="D:/c/mingw64/bin/make.exe" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/c/mingw64/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/c/mingw64/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
this is window platform
path: D:/workspace/c/demo/src/log/log.h
SOURCES path: D:/workspace/c/demo/src/log/log.c
SOURCES path: D:/workspace/c/demo/src/main.c
-- Configuring done (7.2s)
-- Generating done (0.0s)
-- Build files have been written to: D:/workspace/c/demo/build
D:\workspace\c\demo\build>make -j4
[ 33%] Building C object CMakeFiles/Demo.dir/src/log/log.c.obj
[ 66%] Building C object CMakeFiles/Demo.dir/src/main.c.obj
[100%] Linking C executable Demo.exe
[100%] Built target Demo
说明编译成功
查看执行程序
上面编译成功之后会在build目录下生成执行程序Demo.exe
断点debug调试
配置调试文件
点击run-》run with debug,会提示创建launch.json
配置launch.json如下,制定执行程序目录,以及gdb路径
{
// 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": "C/C++: g++.exe 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\build\\demo.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\c++\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
// ,"preLaunchTask": "C/C++: g++.exe 构建活动文件"}
]
}
点击调试
在代码中打断点