初入 C++ 搬砖,在团队中开发实际上很少亲自从零开始搭建C++的完整项目,99%时候都是使用基础架构团队或者CI/CD团队搭建好的框架。这里分享几个配置C++项目的模版,它们一般会涉及三方库管理、格式校准、单元测试、静态检查、Sanitizer配置、CI/CD配置等方面,内容比较完善。

Build System模版

CMake

ModernCppStarter(Github, Gitee)

这个模版非常完整,包含了CI/CD、单元测试、测试覆盖、自动格式化、依赖管理、Sanitizer、代码静态分析等配置,非常完善,通俗易懂。

modern-cpp-template(Github)

这个模版包含的内容和ModernCppStarter差不多,也是使用了现代风格的CMake,支持clang-format、静态分析、文档生成、单元测试、测试覆盖、包管理和CI。这个模版用起来更加顺手。

cmake-examples(GithubGitee)

不同需求的 CMake 模版都有:

cmake_template(Github)

另一个比较完善的 CMake 模版

Bazel

bazel/examples

这是bazel的tutorial,里面有一个简单的cpp项目。

bazel-cpp20(Github)

一个简单的使用Bazel的支持VSCode、单元测试、Fuzz测试的模版。

自动创建开发环境

setup-cpp(Github)

自动创建可配置的C++开发环境,包括编译器、代码分析、Build System等等:

比如,我们可以用它来配置Docker文件:

Modern C++ Starter Kits Share的更多相关文章

  1. C#.NET开源项目、机器学习、商务智能

    所以原谅我,不能把所有的都发上来,太杂了,反而不好. 1..NET时间周期处理组件 这个组件很小,主要是对时间日期,特别是处理时间间隔以及时间范围非常方便.虽然.NET自带了时间日期的部分功能,但可能 ...

  2. NetCore开源项目集合

    具体见:https://github.com/thangchung/awesome-dotnet-core 半年前看到的,今天又看到了,记录下. 框架类: ZKWeb ABP General ASP. ...

  3. iPhone Tutorials

    http://www.raywenderlich.com/tutorials This site contains a ton of fun written tutorials – so many t ...

  4. React——相关工具概述

    Create a New React App Use an integrated toolchain for the best user and developer experience. This ...

  5. iOS编码规范

      The official raywenderlich.com Objective-C style guide.   This style guide outlines the coding con ...

  6. SubSonic指南中文版

    翻译:王鹏程张原 王伟策划:毛凌志2009年1月北京工业大学软件学院PS:有问题反馈至http://lexus.cnblogs.comGetting Started with SubSonicBy S ...

  7. 官方的objective - c风格指南。

    The official raywenderlich.com Objective-C style guide. This style guide outlines the coding convent ...

  8. WordPress 主题开发 - (一) 前言 待翻译

    原文出自: http://themeshaper.com/2012/10/22/the-themeshaper-wordpress-theme-tutorial-2nd-edition/ THE TH ...

  9. Intel® RealSense™ SDK Architecture

    In this article, we highlight some of the key changes that you can expect to see in the Intel RealSe ...

  10. ashx文件的使用

    转自:http://www.cnblogs.com/Tally/archive/2013/02/19/2916499.html ashx是什么文件 .ashx 文件用于写web handler的..a ...

随机推荐

  1. C语言编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。

    /* 开发者:慢蜗牛 开发时间:2020.5.28 程序功能:计算最大公约数和最小公倍数 */ #include<stdio.h> #include<math.h> int m ...

  2. vue通过地址下载文件

    通过a标签 // 创建a标签 const link = document.createElement('a') // download属性 link.setAttribute('download', ...

  3. 泛微OA与ERP集成的关键要点

    泛微OA办公系统与ERP系统的集成是为了实现企业内部各个系统之间的数据共享和协同工作,提高工作效率和管理水平.下面将详细介绍泛微OA办公系统如何与ERP系统集成以及轻易云数据集成平台在该过程中发挥的重 ...

  4. excel怎么固定前几行前几列不滚动?

    在Excel中,如果你想固定前几行或前几列不滚动,可以通过以下几种方法来实现.详细的介绍如下: **固定前几行不滚动:** 1. 选择需要固定的行数.例如,如果你想要固定前3行,应该选中第4行的单元格 ...

  5. [cnn]cnn训练MINST数据集demo

    [cnn]cnn训练MINST数据集demo tips: 在文件路径进入conda 输入 jupyter nbconvert --to markdown test.ipynb 将ipynb文件转化成m ...

  6. ubuntu 22.04搭建本地源

    ubuntu 22.04搭建本地源 基于服务器无法联网的情况下,从一台可以上网的服务器下载软件包和依赖,再在无法联网的服务器中搭建本地源,安装环境. 下载(包括依赖): cd /root mkdir ...

  7. SpringBoot整个RabbitMQ详细~

    搭建环境 1.安装RabbitMQ,我是用的是Docker方式安装的,大家根据个人习惯自行安装哈 docker run -d -p 5672:5672 -p 15672:15672 --name ra ...

  8. Kernel Memory 入门系列: Embedding 简介

    Kernel Memory 入门系列: Embedding 简介 在 RAG模式 其实留了一个问题. 我们对于的用户问题的理解和文档的检索并没有提供合适的方法. 当然我们可以通过相对比较传统的方法. ...

  9. 【笔记整理】请求携带cookie的两种方法

    """ 方法一:在请求头header中携带Cookie请求头信息(因为本身Cookie就是用请求头传递的....) 方法二:使用cookie参数传递cookie字典 &q ...

  10. 数字孪生和GIS系统融合能为水利领域带来什么改变?

    随着科技的不断进步,数字孪生和GIS系统的融合应用逐渐成为了水利领域的新趋势.数字孪生是指通过数字化技术模拟物理实体和过程,将现实世界与虚拟世界相结合的技术,而GIS系统则是地理信息系统,用于收集.存 ...