llvm學習(二)————llvm編譯與環境構建

本文由博主原创,转载请注明出处(保留此处和链接):

IT人生http://blog.csdn.net/robinblog/article/details/17339027



llvm官方資料:

         在2011十月份的时候,有人向我推荐有关llvm的资料,主要是下面三个链接:

        1. http://llvm.org/docs/GettingStarted.html

        2. http://llvm.org/docs/LangRef.html

        3. http://llvm.org/docs/WritingAnLLVMPass.html

        最近重新拾回来有点五味杂瓶,不知道说什么好了,在此说一下llvm工程的构建吧,参考上面链接1

svn獲取最新llvm,並編譯:

        其实链接1Getting Started Quickly (A Summary)  已经说的很清楚了,在此算作翻译。

        1.確認自己的工作目錄,在此默認目錄爲:

robin@ubuntu:~/workspace/llvm_wspace$
        2.在llvm官網,默認使用svn提供最新llvm版本下載,而且目前最新爲llvm-3.4,所以在此新建llvm-.3.4目錄:

$ mkdir llvm-3.4/
        3.進入目錄llvm-3.4 :

$ cd llvm-3.4/
        4.開始在llvm-3.4目錄下獲取llvm源碼:

$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

        5. 進入目錄llvm/tools:

$ cd llvm/tools/
        6.開始在llvm/tools/目錄下獲取clang前端源碼:

$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang

        7.進入目錄llvm/projects:

$ cd ../../llvm/projects
        8.開始在llvm/projects目錄下獲取Compiler-RT源碼:

$ svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
        9.開始在llvm/projects目錄下獲取Test Suite源碼(下载过程比较漫长,test-suite下载是可选的,也就是说,在此可以不下载):

$ svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite

        10.進入目錄llvm-3.4,新建build目錄:

$ cd ../../
$ mkdir build

到此爲止,我們的robin@ubuntu:~/workspace/llvm_wspace/llvm-3.4$目錄下,含有llvm 和 build兩個目錄:

robin@ubuntu:~/workspace/llvm_wspace/llvm-3.4$ ls
build  llvm
        11. 好了,我們準備工作已經做完,可以開始編譯llvm的工程了。編譯llvm有congfigure和cmake兩種方法,llvm官網使用的是configure方法,本人在此選擇CMake吧。 CMake優點

进入build目录:

$ cd build/
执行如下cmake命令:(注意:llvm-3.4需要CMake 2.8.8及以上版本编译)

$ cmake -DCMAKE_INSTALL_PREFIX=_install/ ../llvm/

执行make和make install命令:

$ make && make install



獲取自己需要的Release版本,並編譯:

llvm各種Release版本 的下載鏈接爲:http://llvm.org/releases/download.html

        打開該鏈接,我們我們就會看到LLVM 3.3及其較低版本的Release,在此以LLVM3.3爲例。

        和svn需要下載的一樣,我們分別下載:Clang source codeLLVM source codeCompiler RT source codeLLVM Test Suite(可以不下載)。

和svn的第1,2,3步一样,只是我们在robin@ubuntu:~/workspace/llvm_wspace$ 下建立llvm-3.3目录:

robin@ubuntu:~/workspace/llvm_wspace$ mkdir llvm-3.3/
robin@ubuntu:~/workspace/llvm_wspace$ cd llvm-3.3/
把我们上面下载的四个文件放置到llvm-3.3目录下,并解压:

robin@ubuntu:~/workspace/llvm_wspace/llvm-3.3$ ls
cfe-3.3.src.tar.gz compiler-rt-3.3.src.tar.gz llvm-3.3.src.tar.gz test-suite-3.3.src.tar.gz

解压后,得到文件如下:

robin@ubuntu:~/workspace/llvm_wspace/llvm-3.3$ ls
cfe-3.3.src cfe-3.3.src.tar.gz compiler-rt-3.3.src compiler-rt-3.3.src.tar.gz  llvm  llvm-3.3.src.tar.gz  test-suite-3.3.src  test-suite-3.3.src.tar.gz

然后构建llvm工程的目录结构,在此构建如svn方式的结构: 

1.重命名llvm-3.3.src为llvm:

$ mv llvm-3.3.src/ llvm/

2.重命名 cfe-3.3.src为clang: 

$ mv cfe-3.3.src/ clang/

3.重命名 compiler-rt-3.3.src 为 compiler-rt:

$ mv compiler-rt-3.3.src/ compiler-rt/

4.重命名 test-suite-3.3.src 为 test-suite:

$ mv test-suite-3.3.src/ test-suite/

5. 把clang/ 移动到llvm/tools/下: 

$ mv clang/ llvm/tools/

6.把 compiler-rt/ 移动到llvm/projects/下: 

$ mv compiler-rt/ llvm/projects/

7.把test-suite/ 移动到 llvm/projects/下:

$ mv test-suite/ llvm/projects/

8.到此为止,我们已经构建好llvm-3.3的目录结构了,现在重复上面svn版本的第10和11步来编译就可以了(要把对应的llvm3.4改为3.3哦)。

注意:我在使用第8步编译llvm-3.3时,遇到了下面问题:

Q1:

make[2]: *** No rule to make target `lib/Target/AArch64/AArch64GenSubtargetInfo.inc', needed by `lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o'.  Stop.
make[1]: *** [lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/all] Error 2
make: *** [all] Error 2
A1:

当遇到这个问题时,我们需要重新来执行命令llvm-3.3/build$ cmake -DCMAKE_INSTALL_PREFIX=_install/ ../llvm/ (注意,这里要保留上次在build下生成的文件),第二次cmake之后,我们再来执行make  && make install 就可以了。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值