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

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

在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

其实链接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

llvm學習(二)————llvm編譯與環境構建的更多相关文章

  1. Gazebo機器人仿真學習探索筆記(五)環境模型

    環境模型構建可以通過向其中添加模型實現,待之後補充,比較有趣的是建築物模型, 可以編輯多層樓層和房間,加入樓梯,窗戶和牆壁等,具體可以參考附錄,等有空再補充. 起伏地形環境構建可以參考之前內容:在Ga ...

  2. Gazebo機器人仿真學習探索筆記(四)模型編輯

    模型編輯主要是自定義編輯物體模型構建環境,也可以將多種模型組合爲新模型等,支持外部模型導入, 需要注意的導入模型格式有相應要求,否在無法導入成功, COLLADA (dae), STereoLitho ...

  3. Linux网络设备驱动架構學習(二)

    Linux网络设备驱动架構學習(二) 接下來會從以下幾個方面介紹網絡設備驅動的編寫流程: 1.網絡設備的註冊與註銷 2.網絡設備的初始化 3.網絡設備的打開與釋放 4.網絡數據發送流程 5.網絡數據接 ...

  4. Gazebo機器人仿真學習探索筆記(二)基本使用說明

    在完成Gazebo7安裝後,需要熟悉Gazebo,方便之後使用. 部分源代碼可以參考:https://bitbucket.org/osrf/gazebo/src/ 如果還沒有安裝請參考之前內容完成安裝 ...

  5. 學習 DT device tree 以 ST 的開發板 STM32F429i-disc1 為例

    目標 因為對 device tree 不是很熟悉, 所以就將 device tree, 設為學習目標. 啟動 注意, 這篇隨筆的解說都放在最下面,會標 Explanation_XX,只要搜尋 Expl ...

  6. Android 學習之旅!(2)

    早幾天因爲學車,弄了幾天時間和精力過去,今天終於考過了(科目二,還是補考的...)嗯..不管這麼多了..今天又開始我的android 學習之旅!! 筆記: platform-tools目錄下的文件: ...

  7. Android 學習之旅!(1)

    就這樣就過去了一年加一個學期,現在是大二第二個學期而且是下半學期了,以前都是無所事事,沒事睡睡覺,打打遊戲就過去了,但是想到家境和以後的路,我還是決心自己找點東西學習下,以後出去還能有一技之長(雖然可 ...

  8. MAC下反編譯安卓APK

    所需工具: 1.apktool   http://ibotpeaches.github.io/Apktool/  (配置說明)       https://bitbucket.org/iBotPeac ...

  9. Markdown 學習

    Markdown 格式由John Gruber 創建,是一種便於閱讀,非常簡潔直觀的純文本文件格式,可以方便地轉為html等其他格式,很適合與寫作,不需要關注排版問題 常用學習資源有: ###標題用 ...

随机推荐

  1. Java环境变量配置&解决版本不一致问题

    之前用Myeclipse编译运行Java没有问题 但是突然想用简单点的NotePad++以及cmd直接编译运行Java 这就让我倒腾了一晚上 先说下问题的解决,再总结下查阅的一些知识. 1.进行win ...

  2. 对象序列化XML

    /// <summary>/// 对象序列化XML/// </summary>/// <param name="type">类型</par ...

  3. 中国天气网接口返回json格式分析及接口(XML、图片接口)说明

    实时天气: city        "北京"//城市 cityid      "101010100"//城市编码 temp        "17&qu ...

  4. Use_Case

    What is Use-Case 2.0?Use Case: A use case is all the ways of using a system to achieve a particular ...

  5. gcc/g++命令认识

    gcc & g++是gnu中最主要和最流行的c & c++编译器 . g++用来针对c++的处理命令,以.cpp为后缀,对于c语言后缀名一般为.c.这时候命令换做gcc即可. 下面以T ...

  6. poj 2778 DNA Sequence AC自动机DP 矩阵优化

    DNA Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11860   Accepted: 4527 Des ...

  7. Android程序的隐藏与退出

    转自Android程序的隐藏与退出 Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activit ...

  8. 支付宝openssl漏洞肆虐 互联网巨头称目前已修复

    支付宝openssl漏洞肆虐 互联网巨头称目前已修复 金山毒霸安全专家李铁军表示,这个漏洞使黑客可以远程读取https服务器的随机64KB内存,“只要这个黑客有耐心多捕获多分析那些64KB的数据,用户 ...

  9. Dictionary Size

    uvaLive5913:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...

  10. 介绍一个好用的软件--多个WIN远程连接

    MultiDesk v3.162015-03-16 http://www.syvik.com/multidesk/index_chs.htm MultiDesk 是一个选项卡(TAB标签)方式的远程桌 ...