该仓库用于在VSCode 中方便的编译c、c++程序,依赖 VSCode的.vscode配置 + CMake + make / Ninja 等。该项目是一个shell脚本,在windows的 git bash,cygwin以及 linux 中已验证。不支持MSYS2。该仓库在windows下.vscode默认使用git bash终端,可自行调整。
首先进入自己项目的根目录,运行此仓库的install_tool.sh脚本,脚本会自动搭建好。或者手动将仓库中的.vscode和tools目录拷贝到项目根目录下。
前提:
项目根目录下应该不要存在.vscode目录与tools目录,因为脚本会创建这两个目录,为了避免冲突请在运行install_tool.sh脚本的时候,请先清理好项目目录。
若不需要使用vscode可以不依赖.vscode目录,仅仅需要tools/script目录下的cb.sh与script.conf文件即可。
install_tool.sh脚本的内容如下
cb.sh依赖script.conf文件,在使用cb.sh之前请将script.conf放在其同级目录下。
script.conf中的参数都可以自行进行合理的修改 ,以下是script.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: 并行编译数,可自行修改。默认使用parallel_jobs=$((cpu_count > 2 ? cpu_count - 2 : 1))。
cb.sh脚本依赖script.conf文件中的参数具有一些记忆功能,但也可以通过命令行让其不过分依赖。
cb.sh脚本的使用方法如下:
# -t|--type 切换默认的编译类型
./cb.sh -t
./cb.sh -t Debug
./cb.sh -t Release
./cb.sh --type
# -g|--generate 生成CMake缓存
./cb.sh -g
./cb.sh -g Debug
./cb.sh -g Release
./cb.sh --generate
# -b|--build 编译
./cb.sh -b
./cb.sh -b Debug
./cb.sh -b Release
./cb.sh -b --target all # 指定编译目标 all
./cb.sh -b Debug --target all # 指定编译Debug编译类型,编译目标 all
./cb.sh -b Release --target all # 指定编译Release编译类型,编译目标 all
./cb.sh --build
# -c|--clean 清理
./cb.sh -c
./cb.sh --clean
# -r|--run 运行
./cb.sh -r
./cb.sh -r Debug
./cb.sh -r Release
./cb.sh --run
# -h|--help 帮助
./cb.sh -h
./cb.sh --help
.vscode目录按照作者的习惯,做了一些配置,可以自行修改。
如上图的1-5按钮,分别对应了生成1.CMake缓存、2.编译、3.运行、4.清理、5.切换Debug/Release编译类型。
也可以在终端中使用cb.sh使用命令说明中的命令,也可以在vscode中使用Task Buttons Extension for VSCode插件,配置好快捷键,即可快速编译运行。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。