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

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. 水题(素数表)NYOJ素数距离

                描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素数,则输出左侧的值及相应距离. 如果输入的整数本身就是素数,则输 ...

  2. Jquery插件之信息弹出框showInfoDialog(成功、错误、警告、通知)

    一.信息种类说明: 1.1.操作成功信息 1.2.错误信息 1.3.警告信息 1.4.通知信息 二.使用说明 <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...

  3. 网站访问架构cdn与负载均衡

    曾经见到知乎上有人问“为什么像facebook这类的网站需要上千个工程师维护?”,下面的回答多种多样,但总结起来就是:一个高性能的web系统需 要从无数个角度去考虑他,大到服务器的布局,小到软件中某个 ...

  4. C#应用程序中读取Oracle数据库

    前言 最近的任务就是开发了一个功能,要从供应商那边读取数据,然后拿过来,处理以后放到我们自己的数据库中.供应商那边是Oracle数据库,其实不管什么数据我想都差不多,于是我就开始了.由于在家里写的博客 ...

  5. 谈memcache和memcached的区别

    用了段时间的memcache和memcached总结下认识,看很多人在用cache的时候,刚刚都没有搞清楚memcache 和 memcached的区别,还有就是使用的时候基本都是 get/set   ...

  6. C语言学习总结(四) 剩余内容

    第六章.剩余内容 (预处理指令,宏定义,条件编译,文件操作) 预处理指令 简单的来说就是在程序编译之前需要做的事情 1.宏定义 概念: 是一个替换代码的预处理指令,可以在编译之前进行代码替换(宏展开, ...

  7. 使用Windbg来检查内存

    Windbg是一款微软开发的调试windows代码的工具,水很深,不过使用windbg来进行clr的调试则比较简单,windbg使用之前需要进行配置. File->Symbol path-> ...

  8. EFBaseDal新增删除方法

    public T Delete(int id )        {            var entity = db.Set<T>().Find(id);            T t ...

  9. 学习Swift -- 继承

    继承 一个类可以继承另一个类的方法(methods),属性(properties)和其它特性.当一个类继承其它类时,继承类叫子类,被继承类叫超类(父类). 在 Swift 中,子类可以调用和访问父类的 ...

  10. Runtime-b

    感谢大神分享 依旧是网上很多runtime的资料,依旧是看不懂,,,这里给大家转化一下runtime,使它由隐晦难懂变得通俗易懂. (虽然截图和语言组织的有些凌乱,但是大家还是一点一点的阅读下去吧,可 ...