Windows 下 C++ 编程环境指导
背景介绍
最近安装了 Windows 系统,从来没有在 Windows 下面做过 Unix C++ 开发的我略有些懵逼(为什么在 windows 下开发是 Unix?因为我主要还是用 macOS 和 linux)。在经过一段时间的适应后,总结下Windows下开发的经验,供后续查看。
操作系统建议
建议采用 Windows 10 作为工作的操作系统, 并安装WSL作为编译环境(详见下文).
服务器使用 Ubuntu / CentOS / Manjaro.
我个人服务器使用 Manjaro,这是一个滚动式更新的系统,是在Arch Linux基础上修改的更加易用的发行版。软件众多,同时社区维护的 aur 也支持直接从github上获取源代码编译安装。
Windows Subsystem for Linux
Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的 Ubuntu 映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
安装指引请查看Microsoft官网: Linux 安装指南适用于 Windows 10 的 Windows 子系统
后续 WSL2 发行后,本段再做修改。考虑到 WSL 和 WSL2 是不冲突的两种功能,届时再看使用哪一种。
命令行环境参考
Windows
主要采用PowerShell, 详情参考PowerShell官网.
PowerShell 插件
PowerShell插件主要位于PowerShell Gallery, 可安装oh-my-posh, posh-git等插件
Windows下命令行软件安装
Windows下包管理器主要采用Choco, 可像Linux下包管理器一样使用.
Linux
Linux 下命令行建议采用 zsh, 并加装Oh-my-zsh. (WSL自然也包括在其中)
以下为安利贴: 为什么说 zsh 是 shell 中的极品?
命令行软件
Windows下命令行软件建议采用FluentTerminal, 使用Choco安装 choco install fluent-terminal
. 在设置中可选择WSL/PowerShell/CMD 作为默认命令行, 建议采用WSL.
C++ 代码规范
Google C++ Style Guide
C++代码规范目前采用Google C++ Style Guide 也可参考此中文版教程.
后续会有微调, 将会详细写出.
Lint
Lint采用Clang-tidy做静态分析, 目前项目根目录有clang-tidy.py
文件来做批量Lint. 可采用命令行 ./clang-tidy.py -checks "google-*" -fix -p ./build ./src/*
做检查.
编辑器指引
编辑器采用Clion作为C++开发编辑器, Visual Studio Code 作为辅助编辑器使用.
Clion配置
注册码
Clion注册码可以去淘宝购买,2018-02版本后授权服务器已失效。
WSL连接
请参考Clion官方文档: How to use wsl development environment in clion
Google C++ Style Guide 配置
请参考Clion官方文档: Code Style. C/C++ #Set From
在Set From 中选择 Google.
VSCode配置
强烈建议安装插件
- 配置同步
- settings sync
- Git相关
- gitblame
- githistory
- gitlens
- C++相关
- cmake
- cmake-tools
- cpptools
- include-autocomplete
- Markdown及UML相关
- markdown-all-in-one
- markdown-preview-enhanced
- plantuml
- vscode-markdownlint
- 方便编辑
- beautify
- indent-rainbow
- output-colorizer
- path-intellisense
- rainbow-csv
建议安装插件:
可能有点多…可自行筛选, 覆盖了一些常用语言
auto-close-tag
auto-rename-tag
background
beautify
better-toml
bracket-pair-colorizer
change-case
cmake
cmake-tools
code-runner
code-settings-sync
code-spell-checker
copilot-vscode
cpptools
gc-excelviewer
gitblame
githistory
gitlens
Go
include-autocomplete
indent-rainbow
iris
JavaScriptSnippets
markdown-all-in-one
markdown-pdf
markdown-preview-enhanced
mssql
nbpreviewer
nodejs-docs
output-colorizer
path-intellisense
plantuml
powershell
pyqt-integration
python
quicktype
rainbow-csv
react-native-react-redux
rest-client
theme-dracula
tslint
vs-color-picker
vscode-babel-coloring
vscode-clang
vscode-database
vscode-eslint
vscode-filesize
vscode-hexdump
vscode-hexo
vscode-import-cost
vscode-insertdatestring
vscode-language-babel
vscode-language-pack-zh-hans
vscode-leetcode
vscode-markdownlint
vscode-mysql
vscode-power-mode
vscode-qt-for-python
vscode-styled-components
vscode-svgviewer
vscode-text-pastry
vscode-yaml
webpack
可用Sync配置
首先安装settings sync插件, 选择同步公开gist: 7b4026c4de4f3170fb1770945dbdf52e