C/CPP项目搭建过程§
Step 1 :配置环境§
IDE 和代码编辑器§
C/CPP 编译器§
目前主流的
C/CPP编译器有3种,分别是GCC,Clang,MSVC。在这里我建议这
3种编译器都下载。单纯做题的话可以任选一个下载,比如大家常用的
GCC。
下载
GCC和Clang下载
MSVC安装 Visual Studio。
打开安装程序后,可以看到多个选项,选择“使用
C++的桌面开发”,之后无脑安装即可。实在迷糊可以网上搜索教程,这里不多做赘述。
微软官方不建议直接将
MSVC加入环境变量,这里我们打开刚刚下载的Developer PowerShell for VS 2022, 在终端中输入:验证§cl至此,编译环境配置完成。
CMake , make , ninja§
Step 2 :构建项目§
项目参考§
Makefile 模板§
Cmakelists.txt如何书写,可以网上搜索。常用的§cmake_minimum_required(VERSION 3.20) project(project) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory() include_directories() link_directories() file(GLOB_RECURSE) add_library() add_executable() target_link_libraries()以下是我构建项目时用的
Makefile。MSVC§source_dir = . build_dir = ${source_dir}/build all: cmake -G "Ninja" \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_COMPILER=cl \ -DCMAKE_CXX_COMPILER=cl \ -S ${source_dir} -B ${build_dir} ninja -C ${build_dir}特殊的,对于需要
MSVC编译的项目,记得打开x64 Native Tools Command Prompt for VS 2022来运行它。
x64 Native Tools Command Prompt for VS 2022是下载Visual Studio后自带的终端,它预设了许多环境变量和路径。这里的编译器可以根据个人的需要来更换,只需要更改:
GCC§source_dir = . build_dir = ${source_dir}/build all: cmake -G "Ninja" \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_COMPILER=gcc \ -DCMAKE_CXX_COMPILER=g++ \ -S ${source_dir} -B ${build_dir} ninja -C ${build_dir}Clang§source_dir = . build_dir = ${source_dir}/build all: cmake -G "Ninja" \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -S ${source_dir} -B ${build_dir} ninja -C ${build_dir}
Step 3 : Visual Studio Code 配置§
插件§
下载
clangd,CMake。
使用 clangd 规整代码§
打开
MSYS2 MSYS,输入pacman -S mingw-w64-x86_64-clang-tools-extra, 下载clangd。切换到
Visual Studio Code,在settings.json里添加"clangd.path": "/path/to/clangd.exe",clangd路径。在项目根目录下执行
clang-format --style=Google --dump-config | Out-File -Encoding utf8 ./.clang-format得到.clang-format文件。可以更改
.clang-format文件内容,建议设置IndentWidth(缩进)为4。至此,在
clangd,clangd插件 ,.clang-format文件的配合下,我们可以享受:代码格式化,语法检查和错误提示,代码补全,代码导航等功能。注意,上文中
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON选项十分重要。有了它,在你构建项目后,项目
build目录下会生成compile_commands.json文件。这个文件与
clangd配合下才能进行正常的语法检查和错误提示以及代码导航功能。