linux手动编译llvm/clang

  • centos 7 安装前置依赖
sudo yum install git python-devel libffi-devel graphviz-devel elfutils-libelf-devel \
readline-devel libedit-devel libxml2-devel protobuf-devel gtext-devel doxygen swig
sudo yum install -y centos-release-scl scl-utils-build
sudo yum install -y devtoolset-9
source /opt/rh/devtoolset-9/enable
export CC=/opt/rh/devtoolset-9/root/bin/gcc
export CXX=/opt/rh/devtoolset-9/root/bin/g++
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0.tar.gz
tar xzvf cmake-3.20.0.tar.gz
cd cmake-3.20.0
./bootstrap --prefix=/usr/local
make -j8
sudo make install
  • ubuntu 18.04+ 安装前置依赖
sudo apt install git build-essential cmake python3-dev libncurses5-dev libxml2-dev \
libedit-dev swig doxygen graphviz xz-utils
  • 下载&编译
git clone git@github.com:llvm/llvm-project.git -b release/11.x
cd llvm-project && mkdir build && cd build
cmake -G "Unix Makefiles" ../llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local \
-DLLVM_ENABLE_PROJECTS="clang;" -DLLVM_TARGETS_TO_BUILD="AArch64;X86;"
make -j8
sudo make install

如果只要编译clang,在cmake命令添加定义 -DLLVM_ENABLE_PROJECTS=clang;
LLVM_ENABLE_PROJECTS可用的项目有
clang;clang-tools-extra;compiler-rt;debuginfo-tests;libc;libclc;libcxx;libcxxabi;libunwind;lld;lldb;mlir;openmp;parallel-libs;polly;pstl

默认会编译所有平台,可以通过LLVM_TARGETS_TO_BUILD指定平台,可用平台有AArch64, AMDGPU, ARM, BPF, Hexagon, Mips, MSP430, NVPTX, PowerPC, Sparc, SystemZ, X86, XCore

posted @   至尊王者  阅读(1519)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2008-03-28 终于弄到个百度Hi的邀请
2007-03-28 GDP
2007-03-28 财色双收
点击右上角即可分享
微信分享提示