# cbuildtool **Repository Path**: wiseforever/cbuildtool ## Basic Information - **Project Name**: cbuildtool - **Description**: 该仓库用于在VSCode 中方便的编译c、c++程序,依赖 VSCode的.vscode配置 + CMake + make / Ninja 等。该项目是一个shell脚本,在windows git bash与 linux 中已验证。 - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-05-06 - **Last Updated**: 2025-08-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cbuildtool 项目由vscode_cpp_tool更名为cbuildtool 该仓库用于在VSCode 中方便的编译c、c++程序,依赖 VSCode的.vscode配置 + CMake + make / Ninja 等。该项目是一个shell脚本,在windows的 支持MSYS2, git bash,cygwin。linux 中已验证。支持conan。该仓库在windows下.vscode默认使用 MSYS2 终端,可自行调整。 ## 如何使用 ### 1. 安装依赖 - Terminal(linux) / MSYS2(windows) / Git Bash (windows) - CMake - make / Ninja - VSCode(可选) - C/C++ (VSCode插件、可选) - Task Buttons (VSCode插件、可选) ### 2. 搭建项目 首先进入自己项目的根目录,运行此仓库的install_cb.sh脚本,脚本会自动搭建好。 ```bash # 将.vscode目录,tools目录放入项目根目录,ez_custom_func.cmake文件放入cmake目录 ./install_cb.sh --full # 默认是 # 将.vscode目录,cb.sh与cb.conf文件目录放入项目根目录,ez_custom_func.cmake文件放入cmake目录 ./install_cb.sh # or ./install_cb.sh --simple # or ./install_cb.sh -s # 若install_cb.sh不是最新版本 # 可以手动下载最新版本的install_cb.sh,也可以用install_cb.sh进行更新 ./install_cb.sh --update # or ./install_cb.sh update ``` 前提: - 项目根目录下应该不要存在.vscode目录与tools目录,因为脚本会创建这两个目录,为了避免冲突请在运行install_cb.sh脚本的时候,请先清理好项目目录。 - 若不需要使用 vscode 可以不依赖 .vscode 目录,仅仅需要 cb 与 cb.conf 文件即可。 ### cb 的使用 cb 依赖cb.conf文件,在使用 cb 之前请将 cb.conf 放在其同级目录下。 #### cb.conf 参数说明 cb.conf 中的参数都可以自行进行合理的修改 ,以下是 cb.conf 中参数的说明: gcc / clang 类编译器: - c_compiler: c语言编译器,若编译器在环境变量中,可直接填写。如:gcc。若编译器不在环境变量中则需要绝对路径。如:/usr/local/bin/gcc C:/path/mingw/bin/gcc.exe C:\path\mingw\bin\gcc.exe(目前windows下右斜杠不用双斜杠,也可以用左斜杠)。 - cpp_compiler: c++编译器。同c_compiler。 - build_type: 编译类型,目前仅验证Debug 与 Release。需要是VALID_BUILD_TYPES列表中的值。 - VALID_BUILD_TYPES: 编译类型列表,用于校验build_type参数。 - source_dir: 源代码目录,顶层CMakeLists.txt所在目录。 - build_dir: 编译目录,编译结果输出目录。若指定则使用指定的目录,若不指定则默认在source_dir下创建build目录下自动根据编译器生成不同的目录。 - generator: 编译器生成器,目前验证Ninja 与 Unix Makefiles。 - parallel_jobs: 并行编译数,可自行修改。默认使用parallel_jobs=$((cpu_count > 2 ? cpu_count - 2 : 1))。 MSVC 编译器: MSVC 编译器必须msvc_env_script与host_arch参数,c_compiler与cpp_compiler参数不指定。 - msvc_env_script: msvc环境脚本,用于设置msvc环境变量(目前windows下右斜杠不用双斜杠)。 - host_arch: 目标架构,x86 或 x64。 - build_type: 编译类型,目前仅验证Debug 与 Release。需要是VALID_BUILD_TYPES列表中的值。 - VALID_BUILD_TYPES: 编译类型列表,用于校验build_type参数。 - source_dir: 源代码目录,顶层CMakeLists.txt所在目录。 - build_dir: 编译目录,编译结果输出目录。若指定则使用指定的目录,若不指定则默认在source_dir下创建build目录下自动根据编译器生成不同的目录。 - generator: 编译器生成器,目前验证Ninja 与 Unix Makefiles。 - parallel_jobs: 并行编译数,可自行修改。默认使用$(nproc)。 #### cb 使用命令说明 cb 脚本依赖cb.conf文件中的参数具有一些记忆功能,但也可以通过命令行让其不过分依赖。 cb 脚本的使用方法如下: ```bash # -t|--type 切换默认的编译类型 ./cb -t ./cb -t Debug ./cb -t Release ./cb --type # -g|--generate 生成CMake缓存 ./cb -g ./cb -g Debug ./cb -g Release ./cb --generate # -b|--build 编译 ./cb -b ./cb -b Debug ./cb -b Release ./cb -b --target all # 指定编译目标 all ./cb -b Debug --target all # 指定编译Debug编译类型,编译目标 all ./cb -b Release --target all # 指定编译Release编译类型,编译目标 all ./cb --build # -c|--clean 清理 ./cb -c ./cb --clean # -r|--run 运行 ./cb -r ./cb -r Debug ./cb -r Release ./cb --run # -h|--help 帮助 ./cb -h ./cb --help ``` ### vscode 配置 .vscode 目录按照作者的习惯,做了一些配置,可以自行修改。 ![alt text](image.png) 如上图的1-5按钮,分别对应了生成 - 1.CMake缓存; - 2.编译; - 3.运行; - 4.deploy部署(此处需要自己在CMakeLists.txt中根据自己项目定义一个deploy的target。若不需要请忽略) - 5.切换Debug/Release编译类型; - 6.清理。 也可以在终端中使用 cb 使用命令说明中的命令,也可以在 vscode 中使用 Task Buttons 插件,配置好快捷键,即可快速编译运行。