llvm初步涉猎

原创 2016年08月30日 09:34:11

首先是要安装llvm,

本机是 Ubuntu 16.04.1 lts,

介于之前安装最新版本的llvm3.9老是出现很多问题,还有就版本更新导致内部很多函数被修改或是被抛弃。

最后选择安装llvm3.7.0版本。

1。首先从官网上下载这四个包

tip(后面的.sig是签名文件,可以忽略过去,直接下载源包)

2.  解压四个压缩包,压缩后的文件夹名字不要改动!!

test_suite包 和compeler-rt包 放在 llvm-3.7.0.src 内的 projects文件内, Clang包放在 llvm-3.7.0.src 内的 tools内,


3. 打开"终端",下载cmake, cmake_minimum_required(VERSION 2.8.4) ,但是Ubuntu16.04版本的软件库内的cmake版本肯定是够用的!

sudo apt-get install cmake


4.在 llvm-3.7.0.src 文件夹外创建个文件夹build用来存放编译文件,避免污染源代码,

mkdir build 
cd build

5.  开始编译llvm, make -j2 编译会比较消耗时间,要等至少半个多小时吧...(之前编译3.9版本,出现问题层出不穷,初学者也无法判断安装是否正确,还是选择3.7版本好点)

cmake -G "Unix Makefiles" ../llvm-3.7.0.src
make -j2

6.  make命令编译好之后,就是进入make install命令,但是这里需要用到权限问题,不然会install失败。因为默认install的路径是/usr/local/ ,需要sudo才能安装,

tip(如果后续不想要llvm,可以直接删除usr下的local文件夹就可以了。)

sudo make install

但是用IDE去编写llvm代码会出现很多问题,比如需要修改std=c++11、IDE找不到llvm的include文件夹、或编译报库内代码错误。。。这些问题,目前还没想好怎么解决。


但是,用g++编译器直接编译就可以通过,所以应该是哪里有出现在问题,需要修改参数之类的吧。


那就来验证一下安装的llvm是否能正常工作吧!

创建一个文件:toy.cpp

#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/IRBuilder.h"

int main()
{
  llvm::LLVMContext& context = llvm::getGlobalContext();
  llvm::Module* module = new llvm::Module("top", context);
  llvm::IRBuilder<> builder(context); 

  module->dump( );
}

将上面代码复制进入toy.cpp,保存文件。

用g++来编译试试看,之前我存放编译的文件夹build是在 /home/xx/ 下,这个需要自行跟进自己的路径去修改一下

g++ -o llvm-add toy.cpp `/home/xx/build/bin/llvm-config --cxxflags  --libs engine nativecodegen` -lpthread -ldl  `/home/xx/build/bin/llvm-config --ldflags`

如果OK的话,正常输出结果是:

; ModuleID = 'top'

如果是的话,恭喜你;

不是话,为你默哀,去想办法解决吧,少年、



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

llvm各种格式文件转换图

llvm主要具有以下几种格式的文件。

用llvm简单遍历一个bc文件

我是个编程菜鸟,学了很久编程,都不知道通过main函数参数传递的强大,之前想写个llvm小程序去遍历bc文件里的指令,通过文件流的方式去读写操作,最终错漏百出。 今天带来一个简单的入门程序,...

LLVM implementing a language

  • 2015-11-25 09:53
  • 580KB
  • 下载

llvm写编译后端

  • 2015-10-10 15:32
  • 881KB
  • 下载

Xcode 4.4中LLVM compiler 4.0带来的Objective-C新语法特性

今年WWDC 2012苹果全球开发者大会上,苹果针对LLVM编译器都做了重大改进,新版的Xcode 4.4中的LLVM编译器升级到了4.0,给Objective-C带来了很多令人惊喜的特性。 注意,...

LLVM Essentials

  • 2016-08-18 16:17
  • 1.42MB
  • 下载

在CentOS 6.6 64bit上编译安装LLVM3.7,Clang,Libc++和libc++abi

一、简介 LLVM LLVM(之前称为低级虚拟机Low Level Virtual Machine)是一种非常强大的编译器基础架构框架,专门为使用您喜爱的编程语言编写的程序的编译时、链接时和运行时优化...

LLVM2.8的相关文档

  • 2011-06-07 15:43
  • 933KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)