编译学习笔记(一)
2016-06-08 11:47
113 查看
这段时间学习LLVM最痛苦的就是一直要看英文文档,因为现在没有中文的,亚马逊上面仅有的两本关于LLVM的书就只有两本,一本是《Get started with LLVM core Library》和《LLVM cookbook》,还全是英文的,所以学习的路上碰到了不少的阻碍,下面我就简单说说我碰到的问题,希望能有一定的帮助。
LLVM到底是一个什么玩意:首先听从了老师的要求,下载了LLVM的源码,放在Visual studio里面,然后按照网站上面的要求,右键ALL_BUILD,点击build按钮,构建完成,,然后,,然后我就不知道我该干嘛了。过了一段时间我去问老师,老师给出了一个答案我觉得稍微对LLVM有了一个了解,LLVM既是一个编译器,能够支持少许平台,同时也是一个编译器框架,可以下载下来了以后对源码进行修改,然后支持所需要的平台。我觉得可以这么理解,比如做一个Android项目,在eclipse里面new Project,那么,编译器就会为你创建一个Android项目,这里的LLVM我觉得就可以理解为一个Android项目,只不过有区别的是,如果新建一个Android项目,那么基本上都是在别人已经做好的框架里面添加自己的内容,不存在删除别人框架中的代码这种事;而LLVM不仅要往这个框架里面加入自己的内容,还要适时的删除别人已经写好的东西。
登录LLVM的官方网站:llvm.org,在左边有一个按钮Document,点击以后进入下一个页面,有一个连接是Tutorial:tables of content,这里面是一个很好的入门LLVM的地方,里面讲述了如何使用LLVM去构建自己的编译器。我在这里碰到了一个问题,如果网友们在看里面的代码的时候发现里面的代码都是分散的,而没有集合在一起的,就想要到网上找源码,其实这里不用找,在每一个章节的最下面,就是源码。
好不容易找到源码了,想运行一下,又碰到了重重阻碍,这时候也不需要担心,在之前你把LLVM的源码导入到vs里面了以后,里面就会有一个Example文件夹,里面就是所有的table of contents的例子,直接可以拿来运行的。
LLVM到底是一个什么玩意:首先听从了老师的要求,下载了LLVM的源码,放在Visual studio里面,然后按照网站上面的要求,右键ALL_BUILD,点击build按钮,构建完成,,然后,,然后我就不知道我该干嘛了。过了一段时间我去问老师,老师给出了一个答案我觉得稍微对LLVM有了一个了解,LLVM既是一个编译器,能够支持少许平台,同时也是一个编译器框架,可以下载下来了以后对源码进行修改,然后支持所需要的平台。我觉得可以这么理解,比如做一个Android项目,在eclipse里面new Project,那么,编译器就会为你创建一个Android项目,这里的LLVM我觉得就可以理解为一个Android项目,只不过有区别的是,如果新建一个Android项目,那么基本上都是在别人已经做好的框架里面添加自己的内容,不存在删除别人框架中的代码这种事;而LLVM不仅要往这个框架里面加入自己的内容,还要适时的删除别人已经写好的东西。
登录LLVM的官方网站:llvm.org,在左边有一个按钮Document,点击以后进入下一个页面,有一个连接是Tutorial:tables of content,这里面是一个很好的入门LLVM的地方,里面讲述了如何使用LLVM去构建自己的编译器。我在这里碰到了一个问题,如果网友们在看里面的代码的时候发现里面的代码都是分散的,而没有集合在一起的,就想要到网上找源码,其实这里不用找,在每一个章节的最下面,就是源码。
好不容易找到源码了,想运行一下,又碰到了重重阻碍,这时候也不需要担心,在之前你把LLVM的源码导入到vs里面了以后,里面就会有一个Example文件夹,里面就是所有的table of contents的例子,直接可以拿来运行的。
相关文章推荐
- 简单工厂模式
- adb wifi 调试
- hadoop2.x 环境配置
- 浅谈python 四种数值类型(int,long,float,complex)
- Android Studio 调试技巧
- 实现一个图片懒加载插件有多难? – 前端有多难? – SegmentFault
- CXF动态客户端加载缓慢的原因
- 正则表达式——JAVA与JS中的使用
- 1 applet 报 jar包未签名错误
- JavaScript function函数回调
- php静态
- CSS选择器的权重与优先规则
- yii 简单依赖注入
- 比较两个数a、b的大小,不能使用大于/小于、if、switch,?:等判断语句
- 步进电机 28BYJ-48介绍和驱动及编程
- quartz学习
- calltree查看工程代码中的函数调用关系
- 基于.Net Framework 4.0 Web API开发(5):ASP.NET Web APIs AJAX 跨域请求解决办法(CORS实现)
- iOS_界面流畅的细节
- android5.0 audioflinger