编译
想通过clion学习ClickHouse源码,只有编译后才能查看函数之间依赖。
-
机器环境:macOS 10.15.6(Catalina)
-
编译+clion索引,大概花了
2个多小时
参考ck官网 - How to Build ClickHouse on Mac OS X
编译ClickHouse源码 导入CLion
在mac上用clion编译调试clickhouse流程
Mac 10.15.4: Cannot find objcopy-
安装编译器、依赖组件
brew update brew install ccache cmake ninja libtool gettext llvm gcc binutils grep findutils -
修改clion的Toolchains,执行
brew info llvm查看llvm安装路径

-
点击File -> Reload CMake Project重新执行cmake编译

-
或者在~/ClickHouse工程下手动执行cmake命令
mkdir build && cd build cmake .. \ -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang \ -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++ \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -
不管是clion还是手动编码,如果遇到
Cannot find objcopy.报错,需要修改cmake文件的find_program语句,末尾指定PATHS
ck-22.5分支,该
find_program在~/cmake/tools.cmake中,指定paths配置:PATHS “/usr/local/Cellar/binutils/2.39_1/bin”
通过安装binutils,并查看路径
$ brew install binutils
$ mdfind -name objcopy -
如果报错
CMake Error at contrib/croaring-cmake/CMakeLists.txt:22 (add_library):Cannot find source file:…则执行 git submodule update --init --recursive,拉取底层依赖库,再重新编译
-
-
clion索引失效,点击File -> Invalidate Caches…

参数配置
set min_bytes_to_use_direct_io = 1,不使用OS cache
技术分享
字节
- 干货 | 基于ClickHouse的复杂查询实现与优化
- Runtime Filter 优化Join
- 多Stage模式 优化二阶段复杂计算
- ANTLR 语法解析器生成器
- MORE secrets of ClickHouse Query Performance
- Performance Analysis of ClickHouse Queries
- 干货 | ClickHouse增强计划之“查询优化器”
- 虎哥的博客 - ClickHouse和他的朋友们 系列
本文介绍如何在macOS系统上使用CLion编译ClickHouse源码,包括安装必要的编译器和依赖组件、解决常见错误及配置参数等步骤。

4万+

被折叠的 条评论
为什么被折叠?



