后端砖头

centos 7.x下编译安装clickhouse 2.0.0

2022-03-12  本文已影响0人  明翼

一 gcc安装

clickhouse-cpp 2.0.0这个c++的SDK依赖C++17标准,所以需要先升级gcc,推荐升级gcc到gcc 7.5.0,8版本很多库不好找

1.1 系统依赖库安装

sudo yum -y update
sudo yum -y install bzip2 wget gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel make
sudo yum -y install zlib
sudo yum -y install zlib-devel

1.2 gcc 安装

下载gcc,并解压:

wget  https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
tar  -zxvf  gcc-7.5.0.tar.gz
cd  gcc-7.5.0

安装gcc的依赖包:

./contrib/download_prerequisites
mkdir  gcc-build-7.5
cd  gcc-build-7.5

生成makefile文件:

../configure --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --disable-multilib   

# 耗时30分钟以上
make  -j8
make  install 

可能会遇到automake版本问题,建议升级,使用的升级命令如下:

tar xvf automake-1.15.1.tar.gz
cd automake-1.15.1
./bootstrap.sh
./configure --prefix=/usr
make && make install

替换老的库:

cp  /usr/local/lib64/libstdc++.so.6.0.24  /usr/lib64/
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr  /lib64/libstdc++.so.6.0.24   /usr/lib64/libstdc++.so.6

二 clickhouse-cpp编译

这个编译比较简单,通过cmake编译,编译前需要更改使用gcc的版本:

#在前面添加 
vim CMakeLists.txt
SET(CMAKE_CXX_COMPILER "/usr/local/bin/g++")
SET(CMAKE_C_COMPILER "/usr/local/bin/gcc")

编译

cd clickhouse-cpp.2.0.0  
mkdir build
cd build
cmake ../

编译后,还需要拷贝下:

cp -r /home/xxx/clickhouse-cpp-2.0.0/contrib/* /usr/local/include/

三 静态编译

如果处理clickhouse程序想链接静态库,还需要编译一个库:

wget https://codeload.github.com/google/cityhash/zip/refs/heads/master
unzip cityhash-master.zip
./configure --prefix=/usr
make && make install

链接的时候:

 -lcityhash  -static-libgcc -static-libstdc++ -lclickhouse-cpp-lib-static
上一篇下一篇

猜你喜欢

热点阅读