穷查理宝典:富有与智慧并存的老头子查理·芒格

这周暂时不写 CMake 的内容,换换口味,说说一本非常值得推荐的书《穷查理宝典:查理 · 芒格智慧箴言录》。 简介作者是彼得 · 考夫曼,翻译者李继宏。 先来简单说下不足的地方:整体翻译欠佳,读起来会觉得比较絮叨,排版上也有不少问题,查理十一讲的内容有不少重复的地方,并且每一讲本身也有重复的地方,会让我觉着非常啰嗦。对于没有读过本书的朋友,重点读第二章...

Read More

(CMake Series) Part 5 - Installation, Packaging, and Export

Introduction Subfolder Install Compiled Products Installation Commands Export Packaging Export Compile Directory IntroductionToday’s article can be considered a continuat...

Read More

【CMake 系列】(五)安装、打包与导出

前言今天这篇,可以算是接着上次的 第三方依赖管理,因为今天说的是怎样成为第三方依赖。 当你开发库的时候,就需要考虑,其它人如何使用你的库。 就目前而言,目前有三种方式可以使用第三方库: 子文件夹(下载后编译、Git 克隆编译); 安装编译产物(各平台现有库,自己编译库下载配置); 导出编译目录; 下面分别来说说,该如何操作。 子文件夹对使用者而言,这...

Read More

(CMake Series) Part 4 - Testing with GoogleTest

Native CMake Testing Support GoogleTest Ref Today, let’s talk about testing with CMake. But actually, we are still talking about testing in C++. CMake provides us with comp...

Read More

【CMake 系列】(四)用 GoogleTest 测试

今天我们来说说,CMake 测试。 不过,其实我们还是在说 C++ 的测试。 CMake 给我们提供了完善的测试支持,比如它有一个专门的模块 CTest。 CMake 原生测试支持CMake 原生支持的测试很简单,只有两个函数: 12345enable_testing()add_test(NAME <name> COMMAND <com...

Read More

(CMake Series) Part 3 - ExternalProject Practice

ExternalProject Practice vcpkg Last time we talked about Third-Party Dependency Management and mentioned our team’s use of ExternalProject to manage dependencies. This time...

Read More

【CMake 系列】(三)ExternalProject 实践

上次 说了第三方依赖管理,提到了我们团队在使用 ExternalProject 来管理依赖,这次来说说具体实践,以及一个基于 CMake 的开源依赖管理工具 vcpkg。 ExternalProject 实践来看看它长什么样: 1234ExternalProject_Add(<name> [<option>...])Externa...

Read More

(CMake Series) Part 2 - Third-Party Dependency Management

Dependency Management CMake find_package Third-Party Dependency Management Continuing from the last (CMake Series) Part 1 - Introduction. This time, let’s talk about depend...

Read More

【CMake 系列】(二)第三方依赖管理

接着上次的【CMake 系列】(一)入门 继续讲。 这次,主要说说 CMake 的依赖管理。 依赖管理当我们说 CMake 的依赖管理的时候,往往说的是 C/C++ 项目的依赖管理,但是这门古老的语言,到目前为止,还是没有一个官方大一统的依赖管理工具。 而回头看看它的后来者,Ruby 有 gem、Node.js 有 npm、 Golang 有 ...

Read More

(CMake Series) Part 1 - Introduction

Introduction Preparation A Simple Example A Slightly More Complex Example Other Ref Since the last time I picked up C++ in Why the Order of C++ Static Libraries Matters, I’...

Read More

【CMake 系列】(一)入门

自从上次在为何 C++ 静态链接库顺序很重要捡回了 C++,自此开始了不归路。 今天我们来说说,CMake 这个现代 C++ 项目的利器。 前言为什么我们需要 CMake ? 对于 C++ 开发者来说,他们会习惯于使用 GNU Make 来编译 C++ 项目,对于简单项目来说,这无可厚非,再加上有那么多的开源工具可用,尤其是 autotools 系列,用...

Read More

如何给 Git 大项目瘦身

在上回,我在 如何克隆一个大 Git 项目 说到,遇到了克隆大项目的时候,如果遇到问题该如何解决,这次我们来继续聊聊,假如你是这种项目的维护者,该如何改善。 问题分析相信你也看到了如果你维护的是一个大项目,会给那些新加入的参与者带来什么样的麻烦了。 那么,有什么方法可以解决这个问题呢?我们不妨先来看看大项目往往是什么原因造成的: 的确是个有历史大项目,...

Read More

如何克隆一个大 Git 项目

用 Git 克隆新项目,可以说是每个工程师必备的基础技能,然而,当你遇到克隆过程中的各种各样问题的时候,可知道如何处理? 遇到问题某天在工作中,小 A 像往常一样要克隆一个新项目到本地,于是你熟练地敲下 1git clone git://github.com:example/awesome-project 然后很悲催的,小 A 发现它告诉你这个项目有几...

Read More

我的春节返乡清单

2020 年的开场,多少让大家有点失望,新冠肺炎,还有今天 (2019-10-27) 的科比(虽然对篮球不感冒),不过我还是相信国家机器的运转效率的,这场灾难总会过去。 今年回家,给自己安排了几个任务,主要是为了提升父母的生活幸福感。 年货今年给家里买了点广东这边的糕点,点心礼盒,由于我所在的深圳靠近香港,我也了解到了很多香港有名的点心,比如美心,网上购...

Read More

网络测速工具 iperf

在我们日常的网络相关实践中,有个常见的需求便是,测试网速。 如果只是为了测试自己所在位置的网速,那么,我们可以直接打开网页,直接开始测试即可,比如著名的 SpeedTest 。 然而,如果你的需求是测试两台机器之间的网速,那么,我们就需要用其它的更专业的工具来测试了。 也就是今天要介绍的 iperf。 简介目前它的大版本是 3,对应的命令行名称是 ipe...

Read More