1,LLVM在Windows和Linux下哪些IDE支持它

VS2013 eclipse code::blocks 事实上你能自己动手改配置文件/写插件的话基本都能支持
eclipse 需要自己配置编译器再看看别人怎么说的。

LLVM在Windows和Linux下哪些IDE支持它

2,如何在LLVM中声明一个全局变量

全局变量的定义只能在函数外部,不能在函数内部。 当要使用其他文件里的定义的全局变量时,可以用关键字extern,格式是 [extern 类型 变量名;] 希望对你有帮助。
同问。。。

如何在LLVM中声明一个全局变量

3,编译llvm和clang需要多大空间

就目前我编译过的来说,6g内存,80硬盘在97的时候内存溢出,试试7g,120硬盘并且增大swap空间
这是一组编译器前端+后端,需要编译器理论,c++的基本知识就可以开始学习了.如果想要使用clang和llvm相对全面的功能,还是在linux平台下,自己编译的比较好,pre-built版本里的工具

编译llvm和clang需要多大空间

4,怎样构建一个不依赖gccbinutils的llvmclang Linu

1,Build llvm/clang/lldb/lld 350等组件 10 准备:至少需要从llvmorg下载llvm, cfe, lldb, compiler-rt,lld等350版本的代码。 $tar xf llvm-350srctargz $cd llvm-350src $mkdir -p tools/clang $mkdir -p tools/clang/tools/ext怎样构建一个不依赖gcc/binutils的llvm/clang Linu

5,LLVM 怎样入门和上手

的支持。 LLVM 支持各种各样的编程语言和前端,其中包括 C/C++、Objective-C、Fortran、Ada、Haskell、Java bytecode、Python、Ruby、ActionScript、GLSL 以及 Rust。 LLVM 是 Illinois 大学发起的一个开源项目,它到底是什么呢?从字面上看,它是一个虚机系统,然而这又和之前为大家所熟知的 JVM 以及 .net Runtime 这样的虚机不同,它提供了一套中立的中间代码和编译基础设施,并围绕这些设施提供了一套全新的编译策略(使得优化能够在编译、连接、运行环境执行过程中,以及安装之后以有效的方式进行)和其他一些非常有意思的功能。

6,如何利用LLVM写一个编译器

首先是编译,然后是链接。编译器会将所有.cpp文件编译成中间文件.o,编译时遇到.h文件则读入各种(函数,变量等)的声明,此时并不读入对应的.cpp文件。链接时会将各个.o文件连接成可执行文件。所以,编译器并不是看到.h文件后立即自动去找同名的.cpp文件,而是将所有的.cpp文件编译成.o文件后一并链接。
LLVM有自己的教程,如果你只想做个玩具,那可以首先试着实现LLVM Tutorial: Table of Contents的Kaleidoscope。深入的,请看他的文档http://llvm.org/docs/Kaleidoscope是一个范式简单的脚本语言,教程里的词法,语法分析都是手写的,基本流程就是词法语法解析,利用LLVM的API生成中间代码并执行。我用visual studio编译的LLVM(version 3.6)实现过Kaleidoscope,我遇到的坑不少,如果你想以visual studio编译的LLVM实现Kaleidoscope,你可能同样会遇到1. LLVM的生成目标对象为ELF格式,在windows下使用JIT的API时会出现incompatible object format的错误警告,需要在通过重新设定Module的triple,我的PC的getTargetTriple的结果是“i686-pc-windows-msvc”,直接在后面再加上“-elf”即可TheModule->setTargetTriple("i686-pc-windows-msvc-elf");2. LLVM不支持windows下通过动态链接导出函数,如果需要使用C/C++的函数,需要通过addSymbol进行注册llvm::sys::DynamicLibrary::AddSymbol(/*std::string("_") +*/ "printd", &printd);3. Kaleidoscope里使用的JIT的查找函数的API,getPointerToFunction已经被弃用了,需要替换为getFunctionAddress
LLVM并非仅仅是一款编译器这么简单。利用LLVM,我们可以进行各种疯狂的操作,比如开发一门新的编程语言、一款新的编译器等等。除了上述应用,也有很多开发中较实用的场景,比如开发编译器插件(用于代码规范检查、代码优化、二进制瘦身)。LLVM从来都不是iOS开发领域专有的,是值得每一位IT开发者学习和研究的神器。

文章TAG:windows  linux  哪些  支持  LLVM  
下一篇