ubuntu20 编译 TiFlash

  • Post author:
  • Post category:其他

  1. 下载源码
git clone --recursive https://github.com/pingcap/tiflash.git
  1. 安装 rustup
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain nightly
source $HOME/.cargo/env
  1. 安装 llvm
# 1. 添加 llvm 源
# 在 https://apt.llvm.org/ 页面找到 ubuntu20 对应的 source 网址
# 复制到 apt source list 中

$ cat /etc/apt/source.list
...deb http://apt.llvm.org/focal/ llvm-toolchain-focal main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main
# 13
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main
# 14
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main

# 2. 更新 apt
$ apt update

# 3. 安装 llvm 
# add LLVM repo key
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
# install LLVM packages
apt-get install clang-13 lldb-13 lld-13 clang-tools-13 clang-13-doc libclang-common-13-dev libclang-13-dev libclang1-13 clang-format-13 clangd-13 clang-tidy-13 libc++-13-dev libc++abi-13-dev libomp-13-dev llvm-13-dev libfuzzer-13-dev
# install other dependencies
apt-get install lcov cmake ninja-build libssl-dev zlib1g-dev libcurl4-openssl-dev

# 4. clang 新建软链接
ln -s /usr/bin/clang-13 /usr/bin/clang
ln -s /usr/bin/clang++-13 /usr/bin/clang++
  1. 安装 cmake3.23.0
$ wget https://cmake.org/files/v3.23/cmake-3.23.0-linux-x86_64.tar.gz
$ tar -zxvf cmake-3.23.0-linux-x86_64.tar.gz
$ mv cmake-3.23.0-linux-x86_64.tar.gz ./cmake-3.23.0


# 可选添加软连接
sudo ln -s /home/ubuntu/cmake-3.23.0/bin/cmake /usr/local/bin
  1. 编译 tiflash
$ cd tiflash

$ mkdir build
$ cd build 

# 指定 cmake3.23 的绝对路径
$ ~/cmake-3.23.0/bin/cmake .. -G Ninja

# 注意: 删除 build.ninja 中所有 ‘-Werror’ 
# -Werror 会导致编译过程中所有警告被当作 Error,结果编译失败
$ vi build.ninja

# 在 vi 命令行模式下,输入以下全局替换的命令
$ :%s/-Werror/ /g

# -j 指定线程数。
# 注意:不要空着不写。如果空着 -j 参数,ninja 会尽量跑满所有 CPU 核心,对内存负载极大,最终编译失败
$ ninja tiflash

版权声明:本文为DeamonXiao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。