VSCode + MSVC 的 C/C++ 环境,初步实现轻量级开发
整理总结 + 制作 By CZY in SDU
使用它会获得折腾和装 X 的快乐- 作为 VS2019 项目的辅助,方便地进行文档轻量级编辑和相同位数下的 MSVC 编译器的运行调试
- 利用 MSVC 对单文件/多文件进行运行或简单的调试,从而省略每次都要打开 IDE 的过程
- 结合 CodeRunner 插件实现一键运行并自动清理.exe 等中间文件
- 编译时生成的中间文件位于在 build 中,不同文件编译时不会乱
- 喜欢折腾,
和作者一样没事干,比较闲,不怕麻烦和出错 - 已经学了一段时间的 C 语言,知道编译的基本过程,刚开始学习的同学不建议使用,建议使用 CodeBlocks / 网上的在线编程平台进行编程
- PC 上装有 VS2019 和 VSCode,VS2017 等版本应该也行,远古版本
比如 VC6.0没测试过 - 对于环境变量等概念有一定的了解并确保在配置使用之前环境变量已经配置成功,建议不了解的先自行了解下
- 将 VS2019 中的一部分组件写入环境变量 Path 中
- 会用一些命令行的基本命令和命令的一般构成
- VSCode 中有 C/C++ 插件 + CodeRunner 插件并了解基本操作
- 这不是一个正式的工程文件夹,只是为了便于平时的轻量级编程,文件过多请考虑在本模板中写入 CMake 脚本,以后(
等鸡啄完了米,火烧断了锁,狗舔完了面……)可能会完善这个功能,大型项目请移步 VS、CLion 等 IDE - 移步 VS 时只需要在新创立的项目中将本模板的所有内容添加到项目文件夹里即可
- 模板使用之前可以选择启动不同的 VScmd 终端以控制编译生成程序的平台(x86/x64),不启动默认为 x64 平台
- 删除 build 中的临时文件时不要把文件夹也干掉,如果误操作,请重新建立同名文件夹
- 自定义头文件的位置可选在 include 中,随后编译预处理指令会有变化,请使用相对路径和本目录引用方式进行头文件的引用,例如
#include "./myHeader.h"
- 系统是 Win10;Win7、Mac、Linux 等其余版本未测试,将来估计也没空测试
- 多文件调试请修改
./.vscode/tasks.json
文件的对应位置;如果要加调试参数也要在那里添加 - 使用 VSCode 进行调试时对于内部函数的调用建议选取单步跳过(逐语句),不要用单步进入,否则会出问题,因为VSCode会在当前workspace中找函数文件,很明显是找不到的
- 如果想保留单文件生成的.exe 可以删去 setting 中的 del 命令
- code runner 运行结束后终端目录是 src,不是原来的工作区
- 如果更新自己的VS2019版本,一定要在更新之后在
./.vscode/c_cpp_properties.json
中修改其中的complierpath
路径为升级后的版本号
虽然 VSCode 可以像 VS 跨平台,但还是建议不要在 VSCode 上频繁跨平台操作,来回折腾的功夫够进 VS 好几遍了……
- 经过测试,在不动终端进入 VSCode 时,默认情况下是采用与 PC 相同的位数进行编译运行程序,例如我的情况是默认 PC 位数 64 位
- ENV 不需要更改,始终是%MSVC%/Hostx64/x64 放在 ENV 前即可(这个搞不清是为什么……
- 以大多数的需求x64 -> x86为例,在当前模板文件夹内打开 VS 开发者 cmd,注意要选择带有
x64_x86
的那个,等待出现提示
[vcvarsall.bat] Environment initialized for: 'x64_x86'
出现后在该终端下进入 VSCode,进入对应x86平台的编程开发了,一键运行和 Debug 都正常,不用管.vscode
内的东西
- 退出 x86 的 VSCode 环境时,再次进入时缺省状态还是 x64,如果还要进行 x86 开发只能重复上一步
- 2021-01-20 进一步优化了项目模板的目录结构,优化运行、调试操作,并添加了几点注意事项