源码编译Clickhouse-20.3.17.173-lts 记录

举报
Sez 发表于 2020/09/25 10:43:12 2020/09/25
【摘要】 源码编译Clickhouse-20.3.17.173-lts 记录

一、步骤概述

二、详细编译步骤

  1. 源码准备,将源码从仓库clone 下来,执行
    git submodule sync
    git submodule update --init --recursive
    依赖会同步至ClickHouse\contrib 路径下,具体列表见.gitmodules文件

  2. 准备编译环境

  • 升级gcc9 ,首先保证环境里至少有一个gcc版本,通常可以从基础镜像里rpm packge安装gcc 4.x版本,依次编译安装gmp6.x mpfr 3.x mpc1.x ,参考 http://3ms.huawei.com/km/blogs/details/5938131 ,然后编译安装gcc9 ,使用 ../configure -with-gmp=/usr/local/GCC/gmp-6.1.0 --with-mpfr=/usr/local/GCC/mpfr-3.1.4 --with-mpc=/usr/local/GCC/mpc-1.0.3 指定刚刚安装好的gmp,mpfr mpc版本,具体包见附件
    执行 gcc --version 查看版本
    安装过程可能出现libstdc++.so.6: version GLIBCXX_3.4.14 not found 问题具体参见 https://blog.csdn.net/xiaolong2w/article/details/23915171

        

  • 编译安装cmake cd cmake-3.14.1 ./configure make make install

  • 安装ninja 将ninja包解压,拷贝至/usr/local/bin/ninja 路径即可

  1. 执行编译,将更新好的源码上传至服务,进入代码路径
    cd Clickhouse
    mkdir build
    cd build
    cmake ..
    ninja clickhouse-server clickhouse-client
    正常执行完 会生成 server和client的执行文件,可直接运行


  • 执行当中可能遇到的问题,
    (1)ninja 构建时出现类似contrib/arrow-cmake/thrift/config.h:1:1: error: expected unqualified-id before ‘.’ token报错,不要慌,进入对应目录vi查看报错的文件,里面的xx.h可能只是引用…/…/类似的文件,直接删除,新建软链接cd contrib/arrow-cmake/build/cmake
    ln -s ../../../thrift/build/cmake/config.h.in config.h.in -f
    该问题可能为windows git未生成软连接造成

(2)cmake可能遇到的问题,参见 https://blog.csdn.net/marising/article/details/105846317

三 总结

编译遇到的问题主要是环境问题,需要确认gcc cmake 相关版本,缺啥依赖包安装补上就行。其次是contrib代码包问题,遇到就重新更新,替换对应依赖,ninja遇到没有软链接的进去添加即可。




【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。