VSCode + CMake + MinGW for C/C++/配置文件
下载并安装软件
1 VSCode下载
2 CMake下载
3 MinGW 下载/单独下载比较慢,可以下载CodeBlock+Mingw打包号的压缩文件
VSCode插件安装
1 C/C++
2 C/C++ Clang Command Adapter
3 C/C++ Compile Run
4 C/C++ Snippets
5 C/C++ GNU Global
6 C/C++ Project Generator
tasks.json的配置
1 假设有两个文件夹src和include;src下有main.cpp和sayhi.cpp;include下有sayhi.h
2 先看下命令行格式:> g++ .\src\main.cpp .\src\sayhi.cpp -o main.exe
3 tasks.json
{
"version":"2.0.0",
"tasks":[
{
"label":"build",//任务名称,与launch.json的preLaunchTask相对应
"command":"g++",//要使用的编译器
"args":[
"${file}",//在那个文件的视图上仿真,则选择哪个文件
"${fileDirname}/src/main.cpp",
"${fileDirname}/src/sayhi.cpp",
"${fileDirname}/include/sayhi.h",
"-o",//指定输出文件名,不加默认为a.exe
"${fileDirname}/${fileBasenameNoExtension}.exe",//输出文件名
"-wall",//开启额外警告
],//编译命令参数
"type":"shell",//shell或process,前面是在shell中运行,后面直接运行
"group":{
"kind":"build",
"isDefault":true,//设为false可做到一个tasks.json配置多个编译指令
},
"presentation":{
"echo":true,
"reveal":"always",//在终端显示编译信息的策略,可以为always,silent,never
"focus":false,//设为true可以是执行task时焦点聚集在终端
"panel":"shared"//不同的文件的编译信息共享一个终端面板
},
}
]
}
c_cpp_properties.json的配置重点:
1 "includePath": ["${workspaceFolder}/**",
"E:\\codeblocks\\MinGW\\x86_64-w64-mingw32\\include"],
2 "compilerPath": "E:/codeblocks/MinGW/bin/gcc.exe",//编译器在哪里
3.1 CMake和Mingw绑定:按Ctrl+Shift+P
3.2 输入Cmake: Quick Start
3.3 输入Cmake: Select a Kit
3.4 如果没有看到Mingw,点扫描工具包,扫描也没有,先设置编译器路径
3.5 选GCC 8.1.0
3.6 如果没有发现CMakeLists.txt,选创建,创建可执行文件
3.7 默认创建了一个main.cpp,编译链接后输出"Hello World!"
3.8 现在cmake在下方的工具栏都可以使用了
launch.json的配置重点:
1 "request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
2 "externalConsole": true,
3 "miDebuggerPath": "E:\\codeblocks\\MinGW\\bin\\gdb.exe", //调试器路径
4 "preLaunchTask":"task g++"
CMakeLists.txt配置:
1 cmake_minimum_required (VERSION 3.0.0) //# cmake最低版本号要求
2 set(PROJECT_NAME Cmake_Mingw) //# 设置PROJECT_NAME变量+
3 project (${PROJECT_NAME}) //# 设置工程名
4 include_directories(inc DIR_INC) //# 查找当前目录下的所有源文件并存入DIR_SRCS变量
5 aux_source_directory(src DIR_SRCS) //# 查找当前目录下的所有源文件并存入DIR_SRCS变量
6 add_executable (${PROJECT_NAME} ${DIR_SRCS}) //# 添加一个可编译的目标到工程
后面有空会继续介绍,我们的目标时用VSCODE做一对窗口小程序,其中一个是服务器,另外一个是客户端,两个程序可以用来进行通讯。源代码见链接,动作快的可以直接下载下来自己学习