LLVM学习之路(一) LLVM+Clang 编译与安装

================================================================================

源码下载

================================================================================

1.通过svn下载(需要安装svn[可用命令:sudo apt-get install subversion ]

下载LLVM源码(建议重命名为llvm):

cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
下载 Clang源码 (建议重命名为clang)

cd where-you-want-llvm-to-live
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
下载 Clang-extra-Tools源码(建议重命名为extra):

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
下载LLD linker [可选,链接器]:

cd where-you-want-llvm-to-live
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/lld/trunk lld
下载 Polly Loop Optimizer [可选,循环和数据优化器]:

cd where-you-want-llvm-to-live
        cd llvm/tools
        svn co http://llvm.org/svn/llvm-project/polly/trunk polly
下载 Compiler-RT(建议重命名为Compiler-RT):
       
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
下载 Libomp [可选,如果需要openmp支持的话再下载]:
        
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
下载  libcxx and libcxxabi [可选]:
        
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
下载 Test Suite Source Code [可选,llvm自带测试,较大]
        
cd where-you-want-llvm-to-live
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite
2.也可以直接从网站下载源代码按以上目录结构解压: http://releases.llvm.org/

    下载所需要版本的对应源码即可

================================================================================

编译安装

================================================================================

可在llvm解压同级目录下新建llvm-build文件夹
进入llvm-uild目录:
cd llvm-build
编译llvm源码(尽量选择Release安装,比较快,默认Debug安装会比较慢):
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
内容如下:





猜你喜欢

转载自blog.csdn.net/wang_shiling/article/details/80164661