clickhouse 编译

CMakeList.txt增加2行:

cmake_minimum_required(VERSION 3.3)
add_definitions(-D__STDC_FORMAT_MACROS)
add_definitions(-DUSE_EMBEDDED_COMPILER)

foreach(policy
        CMP0023
        CMP0048 # CMake 3.0
        CMP0074 # CMake 3.12
        CMP0077
        CMP0079
    )
 

 

内存调试: -DSANITIZE=address/thread/memory/undefined

编译命令:

v19.18:

cmake .. -DGLIBC_COMPATIBILITY=OFF -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo  -DUSE_JEMALLOC=1 -DENABLE_TESTS=0 -DENABLE_MYSQL=1 -DUNBUNDLED=ON -DUSE_INTERNAL_MYSQL_LIBRARY=1 -DUSE_INTERNAL_JEMALLOC_LIBRARY=1 -DUSE_INTERNAL_LLVM_LIBRARY=1 

cmake .. -DUNBUNDLED=ON -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTS=0 -DENABLE_MYSQL=0 -DUSE_JEMALLOC=0 -DUSE_STATIC_LIBRARIES=0 -DNO_WERROR=1  -DUSE_RDKAFKA=0 -D SANITIZE=address -DENABLE_HDFS=0

v20.5
cmake .. -DGLIBC_COMPATIBILITY=OFF -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DENABLE_TESTS=0 -DENABLE_MYSQL=1 -DUNBUNDLED=ON -DUSE_INTERNAL_MYSQL_LIBRARY=1  -DUSE_INTERNAL_LLVM_LIBRARY=1 -DENABLE_REPLXX=1 -DUSE_INTERNAL_REPLXX=1 -DUSE_INTERNAL_BOOST_LIBRARY=1 -DENABLE_HYPERSCAN=1 -DUSE_INTERNAL_HYPERSCAN_LIBRARY=1
-DUSE_RDKAFKA=0 -DUSE_INTERNAL_RDKAFKA_LIBRARY=1 -DUSE_INTERNAL_ZLIB_LIBRARY=1 -DUSE_INTERNAL_ZLIB_LIBRARY=1 -DUSE_INTERNAL_POCO_LIBRARY=1

v20.8
cmake .. -DGLIBC_COMPATIBILITY=OFF -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DENABLE_TESTS=0 -DENABLE_MYSQL=0 -DUNBUNDLED=ON -DUSE_INTERNAL_MYSQL_LIBRARY=0  -DUSE_INTERNAL_LLVM_LIBRARY=1 -DENABLE_REPLXX=1 -DUSE_INTERNAL_REPLXX=1 -DUSE_INTERNAL_BOOST_LIBRARY=1 -DENABLE_HYPERSCAN=1 -DUSE_INTERNAL_HYPERSCAN_LIBRARY=1 -DENABLE_RDKAFKA=0 -DUSE_INTERNAL_RDKAFKA_LIBRARY=0 -DUSE_INTERNAL_ZLIB_LIBRARY=0 -DUSE_INTERNAL_POCO_LIBRARY=1 -DUSE_INTERNAL_CAPNP_LIBRARY=1 -DUSE_INTERNAL_PROTOBUF_LIBRARY=1 -DUSE_INTERNAL_GRPC_LIBRARY=1 -DENABLE_S3=0 -DUSE_INTERNAL_AWS_S3_LIBRARY=false  -DUSE_INTERNAL_SNAPPY_LIBRARY=1 -DUSE_INTERNAL_PARQUET_LIBRARY=1 -DUSE_INTERNAL_RAPIDJSON_LIBRARY=1 -DENABLE_ODBC=0 -DENABLE_AVRO=0 -DUSE_INTERNAL_AVRO_LIBRARY=0 -DUSE_INTERNAL_MSGPACK_LIBRARY=1 -DENABLE_CASSANDRA=0 -DUSE_INTERNAL_ODBC_LIBRARY=0 -DUSE_INTERNAL_GRPC_LIBRARY=1 -DUSE_GRPC=1 -DUSE_INTERNAL_CCTZ_LIBRARY=1  -DUSE_KRB5=0 -DENABLE_AMQPCPP=0 -DUSE_INTERNAL_JEMALLOC_LIBRARY=1 -DUSE_INTERNAL_FARMHASH_LIBRARY=1




修改src/CMakelist.txt,增加:
set(MSGPACK_INCLUDE_DIR ${ClickHouse_SOURCE_DIR}/contrib/msgpack-c/include)

 

错误:

contrib/arrow-cmake/thrift/config.h:1:1: error: expected unqualified-id before ‘.’ token

原因:windows git未生成软连接。

解决:

cd contrib/arrow-cmake/build/cmake

ln -s ../../../thrift/build/cmake/config.h.in config.h.in -f

下载contrib:

git submodule sync

git submodule update --init --recursive

 

 CH默认把所有的库都编译到一个可执行文件,而link的过程比较慢,在开发环境下面,可以通过修改CMakeList.txt中一下内容,来使用动态链接库 

-option (USE_STATIC_LIBRARIES "Set to FALSE to use shared libraries" ON)

+option (USE_STATIC_LIBRARIES "Set to FALSE to use shared libraries" FALSE)

option (MAKE_STATIC_LIBRARIES "Set to FALSE to make shared libraries" ${USE_STATIC_LIBRARIES})

if (NOT MAKE_STATIC_LIBRARIES)

- option (SPLIT_SHARED_LIBRARIES "DEV ONLY. Keep all internal libs as separate .so for faster linking" OFF)

- option (CLICKHOUSE_SPLIT_BINARY "Make several binaries instead one bundled (clickhouse-server, clickhouse-client, ... )" OFF)

+ option (SPLIT_SHARED_LIBRARIES "DEV ONLY. Keep all internal libs as separate .so for faster linking" ON)

+ option (CLICKHOUSE_SPLIT_BINARY "Make several binaries instead one bundled (clickhouse-server, clickhouse-client, ... )" ON) endif ()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值