Mac安装llvm
网上安装LLVM的攻略,全都要同时安装一大堆其他软件,本攻略是单独安装LLVM的,不加带任何其他私货。
下载llvm源码包
LLVM官网
源码包地址
直接点击链接下载,新建一个名为llvm
的文件夹,用tar解压到llvm
文件夹,在llvm文件夹中新建一个名为build
的文件夹,解压后目录结构如下
sszxr:llvm sszxr$ ls
build llvm-9.0.0.src
sszxr:llvm sszxr$
进入build文件夹,使用cmake获得Makefile文件
命令cmake -G "Unix Makefiles" -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_BUILD_TYPE=Release ../llvm-9.0.0.src/
sszxr:build sszxr$ cmake -G "Unix Makefiles" -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_BUILD_TYPE=Release ../llvm-9.0.0.src/
-- The C compiler identification is AppleClang 10.0.0.10001044
-- The CXX compiler identification is AppleClang 10.0.0.10001044
-- The ASM compiler identification is AppleClang
-- Found assembler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
………………………………
………………………………
………………………………
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/sszxr/llvm/build
sszxr:build sszxr$
编译
命令make -j 8
,-j n
用来指定线程数,这里指定8个线程
sszxr:build sszxr$ make -j 8
Scanning dependencies of target LLVMDemangle
Scanning dependencies of target LLVMHello_exports
…………………………
Scanning dependencies of target LLVMSupport
[ 0%] Creating export file for LLVMHello
[ 0%] Generating VCSRevision.h
[ 0%] Building CXX object lib/Demangle/CMakeFiles/LLVMDemangle.dir/Demangle.cpp.o
[ 0%] Built target LLVMHello_exports
[ 0%] Building CXX object lib/Bitstream/Reader/CMakeFiles/LLVMBitstreamReader.dir/BitstreamReader.cpp.o
Scanning dependencies of target LLVMMC
[ 0%] Built target llvm_vcsrevision_h
Scanning dependencies of target LLVMMCParser
……………………………
……………………………
……………………………
……………………………
[100%] Built target llvm-lto2
[100%] Built target llvm-exegesis
[100%] Linking CXX executable ../../bin/llvm-opt-fuzzer
[100%] Linking CXX executable ../../bin/opt
[100%] Built target llvm-opt-fuzzer
[100%] Built target opt
sszxr:build sszxr$
安装
命令sudo make install
sszxr:build sszxr$ sudo make install
Password:
[ 0%] Built target LLVMDemangle
[ 4%] Built target LLVMSupport
[ 4%] Built target LLVMTableGen
…………………………………
…………………………………
…………………………………
[100%] Built target benchmark_main
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/llvm
………………………………
………………………………
………………………………
llvm/./FindZ3.cmake
-- Installing: /usr/local/lib/cmake/llvm/./CrossCompile.cmake
-- Installing: /usr/local/lib/cmake/llvm/./AddLLVMDefinitions.cmake
-- Installing: /usr/local/lib/cmake/llvm/./CheckAtomic.cmake
-- Installing: /usr/local/lib/cmake/llvm/./FindSphinx.cmake
-- Installing: /usr/local/lib/cmake/llvm/./TableGen.cmake
-- Installing: /usr/local/lib/cmake/llvm/./CheckLinkerFlag.cmake
sszxr:build sszxr$
安装位置
sszxr:build sszxr$ which llvm-config
/usr/local/bin/llvm-config
sszxr:build sszxr$
LLVM-CONFIG=/usr/local/bin/llvm-config
版本
sszxr:build sszxr$ llvm-config --version
9.0.0
sszxr:build sszxr$