Windows下使用cmakevscode搭建C/C++开发调试环境-创新互联
1. MinGW的下载与安装在windows下搭建的方式,在第3章之后同样适用于Linux系统,大致步骤均相同
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的祁阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
MinGW提供了 C/C++编译器,可以将程序源代码编译为可以在 Windows 中运行的可执行程序
1.1 下载地址https://sourceforge.net/projects/mingw-w64/
不推荐Online Installer , sjij版本较稳定
点击下载后跳转页面读秒,读秒后开始下载
安装完成后将其解压到指定目录,并且将该文件夹中的 bin目录添加进系统的环境变量
将文件夹设置为环境变量方法
- win + r,打开cmd命令窗口
- 输入 gcc --version
- 输入 g++ --version
https://cmake.org/download/
2.2 下载流程页面下滑,如图所示(推荐下载压缩包)
将下载下来的压缩包解压到自定义路径,并且将该文件夹下的bin目录添加进系统环境变量
将文件夹设置为环境变量方法
- win + r,打开cmd命令窗口
- 输入 cmake --version (我装的是3.23版本)
- cmake_minimum_required - 指定使用的CMake版本不低于xxx
# CMake版本不低于 3.10
cmake_minimum_required(VERSION 3.10)
- project - 定义工程名称,并可指定工程支持的语言
# 指定工程名为 TEST,指定支持的语言为C++(指定支持语言可省略,表示支持所有语言)
project(TEST C++)
- set - 显式的定义变量
# 定义SRC变量,其值为main.cpp hello.cpp,相当于使用SRC来替换main.cpp hello.cpp
set(SRC main.cpp hello.cpp)
- include_directories - 向工程添加多个特定的头文件搜索路径,相当于指定g++编译器的-I参数
# 将inc添加到头文件搜索路径
include_directories(inc)
- add_compile_options - 添加编译参数
# 添加编译参数 -Wall(输出警告信息) -std=c++11(支持C++11标准) -O2(优化级别)
add_compile_options(-Wall -std=c++11 -O2)
- add_subdirectory - 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制
存放的位置
# 添加src子目录,src中需有一个CMakeLists.txt
add_subdirectory(src)
- aux_source_directory - 发现一个目录下所有的源代码文件并将列表存储在一个变量中,这个指
令临时被用来自动构建源文件列表存放的位置
# 定义SRC变量,其值为当前目录下所有的源代码文件
aux_source_directory(. SRC)
# 编译SRC变量所代表的源代码文件,生成main可执行文件
add_executable(main ${SRC})
- add_executable - 生成可执行文件
# 编译main.cpp生成可执行文件main
add_executable(main main.cpp)
- CMAKE_BUILD_TYPE 编译类型(Debug, Release)
# 设定编译类型为debug,调试时需要选择debug(相当于带调试信息)
set(CMAKE_BUILD_TYPE Debug)
# 设定编译类型为release,发布时需要选择release
set(CMAKE_BUILD_TYPE Release)
3. VScode插件4. 使用camke编译一个简单工程
4.1 代码结构4.2 代码示例swap.h
#ifndef SWAP_H
#define SWAP_H
#includeclass SWAP {public:
SWAP(int a, int b);
void swap();
void print();
~SWAP();
private:
int a;
int b;
};
#endif
swap.cpp
#include "swap.h"
SWAP::SWAP(int a, int b)
{this->a = a;
this->b = b;
}
SWAP::~SWAP() {};
void SWAP::swap()
{int c = this->a;
this->a = this->b;
this->b = c;
}
void SWAP::print()
{std::cout<< "a = "<< this->a<b<
main.cpp
#include "swap.h"
int main()
{SWAP tmp(3,5);
tmp.print();
tmp.swap();
std::cout<< "After exchange:"<
4.3 在根目录下新建一个CMakeLists.txt文件
CMakeLists.txt
#cmake版本不低于 3.10
cmake_minimum_required(VERSION 3.10)
#工程名为 SWAP
project(SWAP)
#定义SRC变量
set(SRC main.cpp src/swap.cpp)
#设定编译类型为debug,生成的可执行文件可编译
set(CMAKE_BUILD_TYPE Debug)
#指定 inc 为头文件搜索路径
include_directories(inc)
#生成可执行文件main
add_executable(main ${SRC})
4.4 vscode中配置cmake先查看左下方状态栏是否显示cmake状态
如果左下方不显示可以在拓展管理中,先禁用再启用,之后就可以显示
选择Debug,包含调试信息,方便后期调试
选择搜索到的编译器
点击左下方 build
点击 三角符号,运行可执行文件
可鼠标单击行号前空白或使用快捷键 F9
- 创建 launch.json
- 配置 launch.json
在program后配置好正确的生成的可执行路径及名称,${fileDirname} 代表当前目录下
preLaunchTask 表示调试会话开始前要运行的任务 CMake: build
{// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
//可执行文件路径
"program": "${workspaceFolder}/build/main.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
//调试会话开始前要运行的任务
"preLaunchTask": "CMake: build",
}
]
}
- 创建并且配置 tasks.json-
添加一行依赖 - 配置完成后开始调试
- 新增一行打印,直接调试,通过输出发现已重新生成可执行文件
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:Windows下使用cmakevscode搭建C/C++开发调试环境-创新互联
路径分享:http://pwwzsj.com/article/ddjjhg.html