当前位置: 首页 > news >正文

极简C++项目工程脚手架:一键生成CMake + Neovim LSP环境(Mac/Linux and Windows)

极简C++项目工程脚手架:一键生成CMake + Neovim LSP环境(Mac/Linux and Windows)

  • 引言
  • 核心痛点与解决
  • 脚本实现
  • 使用演示
  • 尾注

前言

目的:最近在进行InSAR算法的底层优化,技术栈从纯Python扩展到了C++。在学习和开发过程中,每次新建一个测试项目,都需要重新编写 CMakeLists.txt,创建目录结构,最麻烦的是每次都要手动配置 compile_commands.json 才能让 Neovim 的 LSP (Clangd) 正常工作。为了提高效率,拒绝重复造轮子,我编写了一个自动化脚本来解决这套流程。

核心痛点与解决

在 Mac 终端环境下开发 C++,通常会遇到以下几个繁琐的步骤:

  1. 手动 mkdir src include build
  2. 手写 CMakeLists.txt,容易写错语法。
  3. LSP配置问题:默认生成的项目,Neovim 无法识别头文件路径,必须手动执行 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 并建立软链接。

本文提供的脚本实现了 “一行命令,环境就绪”

脚本实现

第一步:编写 Shell 脚本。我将其命名为 creat_c_project.sh。这个脚本会自动完成目录创建、CMake配置生成以及 LSP 软链接的建立。

#!/bin/bash# =======================================================
# 极简 C++ 项目结构生成脚本
# 功能:目录生成 + 现代CMake配置 + 自动适配Neovim LSP
# =======================================================if [ -z "$1" ]; thenecho "使用方法: $0 <ProjectName>"exit 1
fiPROJECT_NAME=$1
PROJECT_DIR="./$PROJECT_NAME"if [ -d "$PROJECT_DIR" ]; thenecho "错误: 目录 $PROJECT_DIR 已存在。"exit 1
fiecho " 正在创建 C++ 项目: $PROJECT_NAME"# 1. 创建标准目录结构
mkdir -p "$PROJECT_DIR/src"
mkdir -p "$PROJECT_DIR/include"
mkdir -p "$PROJECT_DIR/build"
mkdir -p "$PROJECT_DIR/data"# 2. 生成 .clang-format (统一代码风格)
echo -e '---
BasedOnStyle: LLVM
IndentWidth: 4
...
' > "$PROJECT_DIR/.clang-format"# 3. 生成 CMakeLists.txt (关键配置)
cat << EOF > "$PROJECT_DIR/CMakeLists.txt"
cmake_minimum_required(VERSION 3.10)
project(${PROJECT_NAME} LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 生成 compile_commands.json# 自动扫描 src 下的所有 cpp 文件
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS "src/*.cpp")add_executable(${PROJECT_NAME} \${SOURCE_FILES})
target_include_directories(${PROJECT_NAME} PUBLIC \${CMAKE_SOURCE_DIR}/include)
EOF# 4. 生成 main.cpp
cat << EOF > "$PROJECT_DIR/src/main.cpp"
#include <iostream>int main() {std::cout << "Starting ${PROJECT_NAME}..." << std::endl;return 0;
}
EOF# 5. 自动初始化构建并链接 LSP 配置
echo "⚙️  正在初始化 CMake 环境..."
cd "$PROJECT_DIR/build"
cmake .. > /dev/null 2>&1
cd ..# 建立软链接,让 clangd 能找到配置
if [ -f "build/compile_commands.json" ]; thenln -sf build/compile_commands.json compile_commands.jsonecho "  [LSP 就绪: compile_commands.json 已链接]"
fiecho "✅ 项目 $PROJECT_NAME 已就绪!"

第二步:赋予脚本执行权限。建议将脚本放在环境变量路径下(如 ~/bin 或自定义的工具目录),并在 .zshrc 中配置好 PATH。

chmod +x creat_c_project.sh

使用演示

第三步:在终端直接运行脚本。例如创建一个名为 InSAR_Test 的项目。

./creat_c_project.sh InSAR_Test

Terminal

第四步:效果验证。脚本运行后,目录结构如下所示,且 compile_commands.json 已自动链接到根目录。使用 nvim src/main.cpp 打开文件,代码补全和跳转功能即刻生效,无需任何额外配置

InSAR_Test/
├── CMakeLists.txt
├── build/
├── compile_commands.json -> build/compile_commands.json  <-- 关键!
├── include/
└── src/└── main.cpp

Neovim LSP

尾注

  • 本文脚本适用于 Mac (M芯片/Intel) 及 Linux 环境。Windows 用户建议使用我编写的 Python 版本(自动处理路径分隔符和软链接权限)。
  • 脚本中使用了 GLOB_RECURSE 来管理源文件,适合中小型科研项目或算法验证,大型工程建议显式列出源文件。
  • 本文工具已上传至 GitHub,包含 Shell 和 Python 两个版本,欢迎 Star 和改进:C-Project-Generator。
  • 同时感谢 CMake 官方文档 对配置语法的参考。
http://www.rkmt.cn/news/87760.html

相关文章:

  • 2025年度油加工在线分析检测厂家、饲料分析检测供应企业推荐 - mypinpai
  • AI学习机品牌排名Top5:实用推荐不容错过! - 百誉集团
  • 八中上机课练习题单
  • 工作后如何进行持续学习
  • 水土保持方案编制实操与典型案例分析技术应用
  • 企业合规必备|2025 算法备案实操指南:避坑要点 + 未合规风险
  • 2025年中国五大恒温酒窖设计公司推荐:求推荐酒窖设计专业公 - mypinpai
  • 口碑好的仪表品牌推荐排行?仪表品牌 仪表公司 仪表工厂 仪表厂家 仪表厂商 仪表生产厂家
  • 2025反应釜按需定制TOP5实力厂商推荐:甄选品牌厂家助力 - myqiye
  • Android内核高危漏洞:CVE-2025-36922权限提升深度解析
  • 2025年高纯烷基化油实力厂家推荐榜单:二硫醚‌/石灰酸‌/三甲氧基甲烷源头厂家精选 - 品牌推荐官
  • 2025澳标开关品牌定制厂家TOP5权威推荐:资质齐全+售后 - 工业品牌热点
  • 2025年四川火锅料品牌TOP榜,你常吃的上榜没? - 百誉集团
  • 黑客技术水深!普通人不要随便碰
  • Markn深度体验:解锁高效Markdown文档阅读的终极方案
  • 智能家居平台革新:Home Assistant Core 2025.4.0b10技术架构深度解析
  • 经典好吃的零食推荐:如果只能选一个“不会出错”的,我会先把旺旺米果放前面 - AIEO
  • 2025年五大充电桩品牌推荐:便易充客户认可吗?便易充发展前 - 工业推荐榜
  • 2025年上海薪酬绩效设计公司权威推荐榜单:薪酬绩效管理/薪酬绩效制度/薪酬绩效策划咨询公司精选 - 品牌推荐官
  • 2025年药材烘干流水线源头厂家权威推荐榜单:箱式烘干房/蔬菜烘干设备/烘干设备源头厂家精选 - 品牌推荐官
  • 2025年中国十大换热器优质厂家推荐:全焊式换热器定制哪家强 - 工业推荐榜
  • LOOT插件加载优化器:游戏模组管理终极指南
  • 2025自动分切机制造商TOP5权威推荐:专业分切机厂家深度 - 工业品牌热点
  • 2025化工外贸邮箱营销排行榜:亿企邦领跑,三强格局初显 - GEO排行榜
  • 计算机视觉经典模型
  • 瓶盖扭矩仪/扭矩测试仪厂家推荐|2025年12月优质供应商热度排名 - 品牌推荐大师1
  • 2025四川AI大模型优化公司口碑榜:这几家必看! - 百誉集团
  • 2025年水冷硫化机,轻型硫化机,无锡硫化机厂家推荐:加热均匀性与硫化质量深度盘点 - 品牌鉴赏师
  • 2025垃圾飞灰处理优质厂家专业推荐榜:发电厂飞灰处理/飞灰固化处理设备/飞灰熔融处理优质厂家盘点 - 品牌推荐官
  • 突破性AI绘图革命:4-bit量化让普通电脑畅享专业级图像生成