逆风起笔
c++ and web developer
主页
分类
标签
归档
About Me
友链
My Github
Proudly powered by
Leanote
Theme by ©
mrbird
文章 - ubuntu16.04 安装 llvm和clang
Dark
ubuntu16.04 安装 llvm和clang
? ubuntu ?
? LLVM ?
? clang ?
? C++ ?
发布于
2017-11-14
8841人围观 0条评论
? ubuntu ?
? LLVM ?
? clang ?
? C++ ?
发表于
2017-11-14
8841人围观 0条评论
> 摘抄自[安装 LLVM + Clang](http://www.jianshu.com/p/598b7094b8c1)和[手把手教你在Ubuntu下安装clang和libc++](http://www.jianshu.com/p/cbb242026ff2) # LLVM简介 LLVM是伊利诺伊大学的一个开源项目,LLVM提供了完整的C/C++工具链,Clang属于其中的一个子项目,是 LLVM 原生的 " C/C++/Objective-C"编译器前端,Clang负责完成词法和语法分析,而代码优化和机器代码的生成工作由LLVM后端完成。vim中的插件YouCompleteMe就是利用Clang完成语法分析并给出精确的自动补全和语法错误提示(即静态分析)。 # 安装 > 简单来说,Clang 和 CompileRT 这两个子项目为 LLVM 提供了 C, C++, Objective C 和 Objective C++ 的前端及动态库支持,使得我们可以使用 Clang 来编译和构建项目。而要构建Clang,必须先构建LLVM核心库。 可从远程库[http://llvm.org/svn/llvm-project/llvm/tags/](http://llvm.org/svn/llvm-project/llvm/tags/)中找到 比如我使用[http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final/](http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final/) ## 安装必要的包 ``` sudo apt-get install subversion sudo apt-get install cmake ``` ## 建立目录,统一存放 ``` cd ~/download/ sudo mkdir llvm-install cd llvm-install ``` * llvm core放在llvm-install目录下 * clang 放在 llvm目录下的tools目录下 * compileRT放在llvm目录下的projects目录下 组织结构如下: ``` llvm/ /tools/clang /projects/compiler-rt ``` ## 下载 llvm core库 ``` svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvm ``` ## 下载clang: ``` cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_500/final clang cd ../.. ``` ## 下载clang工具(可选) ``` cd llvm/tools/clang/tools svn co http://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_500/final extra cd ../../../.. ``` ## 下载Compiler-RT ``` cd llvm/projects svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_500/final compiler-rt cd ../.. ``` ## 下载标准库libcxx(绝对要下载)还有libcxxabi(千万不要遗漏): ``` cd llvm/projects svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_500/final libcxx svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_500/final libcxxabi cd ../.. ``` ## 编译安装 ``` mkdir build cd build ``` 注意将默认的Debug模式换成Release模式. ``` cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm make sudo make install ``` # 测试和使用 ## 测试一下 ``` clang++ --help ``` ## 基于c++11使用libc++编译x.cpp并执行a.out ``` clang++ -std=c++11 -stdlib=libc++ x.cpp .\a.out ``` ## 验证x.cpp的正确性 ``` clang x.cpp -fsyntax-only ``` ## 输出x.cpp未优化的LLVM代码 ``` clang x.cpp -S -emit-llvm -o - ``` ## 输出x.cpp经过O3优化的LLVM代码 ``` clang x.cpp -S -emit-llvm -o - -O3 ``` ## 输出x.cpp的原生机器码 ``` clang x.cpp -S -O3 -o - ``` ## 折腾 安装完毕之后, 如果不嫌麻烦的话, 可以用clang再编译安装一次: ``` CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm ``` 后续步骤同上:-) # 主要参考文献 http://clang.llvm.org/get_started.html http://libcxx.llvm.org/docs/BuildingLibcxx.html http://libcxx.llvm.org/docs/UsingLibcxx.html http://llvm.org/docs/GettingStarted.html http://llvm.org/docs/CMake.html
上一篇:
vim安装YouCompleteMe插件
下一篇:
0
赞
提交评论
立即登录
,发表评论
没有帐号?
立即注册
0
条评论
More...
没有帐号?立即注册