================================================================================
源码下载
================================================================================
1.通过svn下载(需要安装svn[可用命令:sudo apt-get install subversion ])
cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd where-you-want-llvm-to-live
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd where-you-want-llvm-to-live
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd where-you-want-llvm-to-live
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/lld/trunk lld
cd where-you-want-llvm-to-live
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/polly/trunk polly
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
下载所需要版本的对应源码即可
================================================================================
编译安装
================================================================================
cd llvm-build
cmake -G "Unix Makefiles" -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_BUILD_TYPE=Release ../llvm
(启用多个线程编译[这里用4个])
make -j4
make install
至此,LLVM+Clang基本安装完毕。
================================================================================
测试举例
================================================================================
查看clang版本:
clang --version
获取帮助选项:
clang -help
也可以编写简单的helloworld程序hello.c来用clang进行编译:
clang hello.c
./a.out
或:
clang hello.c -o hello
./hello
至于为什么编译安装的LLVM+Clang却只测试clang,那么来看一下如何简单的使用LLVM:
将hello.c编译为LLVM IR的二进制文件(得到hello.bc):
clang -emit-llvm -c hello.c -o hello.bc
使用llvm虚拟机执行hello.bc(输出“hello world!”):
lli hello.bc
将hello.bc从二进制转换为可读的IR文件(得到hello.ll):
llvm-dis hello.bc
内容如下: