Centos7 源码安装 Clang

安装CMake

必须是3.4.3以上版本,直接下载二进制设置到PATH环境变量就可以了

 

安装编译依赖

yum install python-devel libffi-devel graphviz-devel elfutils-libelf-devel readline-devel libedit-devel libxml2-devel protobuf-devel gtext-devel doxygen swig 

 

下载clang源码包、gtest rpm包 以及编译好的clang二进制包

 

因为gtest yum源没设置,所以直接使用rpm安装了。

gtest我用的是gtest-1.6.0-2.el7.x86_64.rpm、gtest-devel-1.6.0-2.el7.x86_64.rpm版本包,

链接地址:https://centos.pkgs.org/7/epel-x86_64/gtest-1.6.0-2.el7.x86_64.rpm.html

 

1)设置编译环境(官网上编译好的clang作用编译器) 

export LD_LIBRARY_PATH=/home/clang500/lib
export CC=/home/clang500/bin/clang
export CXX=/home/clang500/bin/clang++
export CXXFLAGS=-stdlib=libc++
export LDFLAGS='-lc++ -lc++abi -fuse-ld=lld'

 

2)设置llvm目录,组件包只能放到固定目录,固定名称

首先解压 llvm-7.0.0.src.tar.xz,生成目录 llvm-7.0.0.src

llvm-7.0.0.src/tools 目录下的组件:
解压 cfe-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/tools/clang
解压 lld-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/tools/lld
解压 polly-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/tools/polly
解压 lldb-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/tools/lldb

llvm-7.0.0.src/projects 目录下的组件:
解压 openmp-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/projects/openmp
解压 libcxx-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/projects/libcxx
解压 libcxxabi-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/projects/libcxxabi
解压 libunwind-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/projects/libunwind
解压 compiler-rt-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/projects/compiler-rt

clang 的子组件:
解压 clang-tools-extra-7.0.0.src.tar.xz,重命名为 llvm-7.0.0.src/tools/clang/tools/extra

 

编译安装clang

mkdir build; cd build; 

cmake .. -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_EH=ON -DLLVM_INSTALL_UTILS=ON -DWITH_POLLY=ON -DLINK_POLLY_INTO_TOOLS=ON -DLLVM_TARGETS_TO_BUILD=X86 -DLIBOMP_ARCH=x86_64 -DBUILD_SHARED_LIBS=ON -DLIBOMP_ENABLE_SHARED=ON -DLLVM_ENABLE_LIBCXX=ON -DLLDB_RELOCATABLE_PYTHON=ON -DLLVM_ENABLE_FFI=ON -DCMAKE_BUILD_TYPE=Release -DCLANG_DEFAULT_CXX_STDLIB=libc++ -DCLANG_INCLUDE_TESTS=OFF -DENABLE_LINKER_BUILD_ID=ON -DENABLE_X86_RELAX_RELOCATIONS=ON -DLIBCXXABI_INCLUDE_TESTS=OFF -DLIBCXX_INCLUDE_BENCHMARKS=OFF -DLIBCXX_INCLUDE_TESTS=OFF -DLIBOMP_TSAN_SUPPORT=ON -DLLDB_BUILD_INTEL_PT=OFF -DLLDB_INCLUDE_TESTS=OFF -DLLVM_ENABLE_OCAMLDOC=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_GO_TESTS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON -DLLVM_TOOL_LLGO_BUILD=ON -DLLVM_TOOL_PARALLEL_LIBS_BUILD=ON -DLLVM_ENABLE_PIC=ON -DLIBUNWIND_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_PEDANTIC=ON -DLIBCXXABI_LIBDIR_SUFFIX=64 -DLIBCXX_LIBDIR_SUFFIX=64 -DLIBUNWIND_LIBDIR_SUFFIX=64 -DLLVM_LIBDIR_SUFFIX=64

make -j8; make install

 

注意:这个遇到一个问题,如果gcc没安装的话,cmake的时候,会报无法找到 -gcc -gcc_s 的错误,所以得需要安装gcc,不懂是什么原因怎么规避这个问题,或者本身clang就需要gcc的库,希望有朋友帮忙解答一下,多谢!!

 

转载于:https://www.cnblogs.com/KisonDu/p/10117262.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值