【大数据】OLAP引擎-clickhouse

本文介绍如何在macOS系统上使用CLion编译ClickHouse源码,包括安装必要的编译器和依赖组件、解决常见错误及配置参数等步骤。

编译

想通过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

技术分享

字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值