作者:snsn1984

阅读了文档《Creating an LLVM Project》(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍,记录一下自己的过程。

实际做的时候跟文档上还是有不同的。

1.首先我系统上的llvm3.1是之前已经下好,并且make过的。我打开llvm-3.1/projects目录,看到下面有一个我之前放的compiler-rt目录和另外一个本来这里就有的sample。把sample这个文件夹copy到llvm3.1的同级目录。修改文件夹名字为MyFirstLLVM。

2. 打开MyFirstLLVM/autoconf目录,打开configure.ac.

3. AC_INIT后面的括号里面有三个中括号,第一个中括号要填的是这个项目的名字,第二个是这个项目的版本号,第三个是作者的联系邮箱,可改可不改。

4. 因为现在MyFirstLLVM已经和llvm-3.1在同级目录了,所以修改接下来的LLVM_SRC_ROOT="../../llvm-3.1" LLVM_OBJ_ROOT="../../llvm-3.1/build"。llvm-3.1/build目录是我编译llvm-3.1的目录。

5. 修改AC_CONFIG_AUX_DIR后面的内容为:(["../../llvm-3.1/autoconf"])。

6. 然后保存,在terminal中运行./AutoRegen.sh。这时候系统提示:Your autoconf was not detected as being 2.5x or 2.6x。

7. 查了下,是机器上没装autoconf的缘故,使用sudo apt-get install autoconf安装之后,就可以正常运行了。

8. 然后在MyFirstLLVM目录之下,建立一个build目录,在build目录下运行../configure。

9. 在build目录下运行make,结束之后可以看到build目录下有一个Release+Asserts目录,打开这个目录,可以看到lib和bin两个目录。

10. 在bin目录之下运行./Sample得到一个输出的结果5。

这样就已经完成了一个LLVM工程的建立。这是建立LLVM工程的两种方式之一,另外一种方式就是从零开始,自己一点一点建立,这样相对来说会复杂点。

PS:

建立LLVM工程和编译LLVM是两回事,不要搞混了。

转载于:https://www.cnblogs.com/ainima/archive/2012/10/22/6332007.html

LLVM每日谈之三 如何创建一个LLVM工程相关推荐

  1. LLVM每日谈之三十一 如何读写LLVM的bitcode

    LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用.如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定 ...

  2. LLVM每日谈之四十一 组装一个完整的工具链

    写在前面的话:这是一篇LLVM的官方文档,英文文档地址: Assembling a Complete Toolchain 之前读文档的时候,陆陆续续的翻译过一些,周末花了点时间把这个文章整理了出来.因 ...

  3. LLVM每日谈之三十四 LLVM IR生成和转换的几条指令

    本文将罗列几条关于LLVM IR生成和转换的几条指令,并没有技术含量可言,只是让刚接触LLVM IR的同学,有一个检索和参考作用.文中min.c作为输入. min.c int min(int a , ...

  4. LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)

    今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享.旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构.PPT如下:

  5. LLVM每日谈 | 知乎

    llvm是什么? llvm是low level virtual machine的简称,其实是一个编译器框架.llvm随着这个项目的不断的发展,已经无法完全的代表这个项目了,只是这种叫法一直延续下来. ...

  6. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常

    Servlet 什么是服务器 服务器就是一台高性能电脑 电脑上安装了提供服务的软件就称为 xxx服务器 举例: 邮件服务器: 就是在电脑上安装了提供邮件收发服务的软件 ftp服务器: 就是在电脑上安装 ...

  7. 使用keil软件创建一个STM32工程

    使用keil软件创建一个STM32工程 ----------------芯片:STM32F429IGT6 创建一个STM32F429IGT6的工程,其他型号的单片机也大同小异.因为最近开始学习STM3 ...

  8. SoapUI——创建一个SOAP工程

    本章简单介绍SOAP工程包括创建工程,介绍面板区域功能. 目录 前言 1 创建工程 1.1 SOAP 工程 1.2 REST 工程 2 引入工程 前言 SoapUI工程在导航树的根节点下,Soap工程 ...

  9. CCS6 自己创建一个新工程

    对于新手来说通常是直接将例程直接导入CCS中,观察实验现象,但是如果自己从零创建一个新工程该怎么办呢??? 1.首先打开CCS软件在主界面点击project->New ->CCS Proj ...

最新文章

  1. 如何优雅的转换 Bean 对象!
  2. 腾讯员工晒出薪资:真实985毕业薪资,大家看我还有救吗?网友:日薪?
  3. 用 rsync sersync两个工具实现文件备份及同步 一
  4. linux命令进入用户模式,linux怎么切换到root用户模式
  5. uniapp 如何给搜索框设值_uni-app 顶部配置搜索框和左右图标
  6. LayaAir 音乐与音效
  7. 【优化分类】基于matlab遗传算法优化支持向量机分类(多输入多分类)【含Matlab源码 QF003期】
  8. 寻找两个有序数组最小相同元素---JavaScript--解决方法
  9. python 存储对象_Python使用redis存储对象
  10. 电脑计算机快捷键切换桌面,电脑切换界面的快捷键是什么_电脑切换桌面快捷键怎么用-win7之家...
  11. [教程] 使用魔影工厂和Nero 10制作DVD光盘
  12. 养老保险和住房公积金如何转移
  13. 电瓶车.换电瓶(20181122)
  14. 《方与圆》序人生控制论
  15. Java游戏用户登录注册_用java类模拟游戏的账号的登陆,注册,退出。 1.没有账号,需要注册。 2.注册完成后方可登...
  16. iPhoneX停产?对此不敢苟同
  17. 黑苹果NVIDIA显卡驱动程序【 WebDriver-378.10.10.10.20.108+支持macOS 10.13.1 High Sierra (17B1002)版本】
  18. 又一个!左手手机,右手汽车,为啥手机厂商都扎堆造汽车?
  19. Java基础——LinkedList源码分析
  20. 免费的几个CDN加速

热门文章

  1. layUI table 内容超出宽度怎么换行显示,而不是显示省略号
  2. POI中sheet.getRow方法返回值NullPointException
  3. MySQL和Oracle的一些区别
  4. Python入门--流程控制语句continue
  5. rope 实用把一段区间的数字整体搬到序列中的一段的时候用
  6. 1、javascript的继承function
  7. OpenGL基础56:OpenGL简单调试
  8. hihocoder 1465 : 后缀自动机五·重复旋律8(后缀自动机+最长公共子串)
  9. python中random库
  10. scikit-image 库简介