从0开始学习velox源码(一)

前言

本系列是笔者学习velox源码的笔记,主要记录在学习velox源码时遇到的问题和解决方案。
本节是最基础也是最磨人的一节————搭建开发环境。

git clone velox

1
git clone git@github.com:facebookincubator/velox.git

本系列当前基于commit ac5c15eb7627b42f8d41023215d1d4a7e69d45aa

setup-macos.sh

1
./scripts/setup-macos.sh

执行该脚本会安装velox的依赖,包括cmakegloggflagsfmtfolly等。
笔者在安装时遇到了一些问题,解决方案可参考此isuue:build issue

大致来看,分别是ccache安装失败和folly编译失败。

use clion to open velox

本地ide使用的是clion,打开velox的根目录即可。
本地环境主要用于debug unit test, 因此cmake参数直接参考make unitest命令得到的cmake命令即可。

1
-DTREAT_WARNINGS_AS_ERRORS=1 -DENABLE_ALL_WARNINGS=1 -DVELOX_BUILD_MINIMAL="OFF" -DVELOX_BUILD_TESTING="ON" -DCMAKE_BUILD_TYPE=Debug -GNinja -DMAX_LINK_JOBS= -DMAX_HIGH_MEM_JOBS= -DVELOX_FORCE_COLORED_OUTPUT=ON

Build dir也参考make unitest命令得到的build dir,即_build/debug
此外,还需要额外关注环境变量INSTALL_PREFIX,这将指定velox优先从下载的依赖项中查找库文件。
1
INSTALL_PREFIX={Your-velox-code-repo}/deps-install

cmake设置大致如图:clion-velox-debug-env-cmake

此后,愉快地debug即可。