前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu安装LLVM和clang

ubuntu安装LLVM和clang

作者头像
aneutron
发布2022-08-19 11:30:18
3.6K0
发布2022-08-19 11:30:18
举报
文章被收录于专栏:闲余说

这是一篇老笔记,在整理之前的博客发现了。想起当年上学时,学习 clang 的经历。

问题描述

笔者在安装LLVM和clang时遇到一下奇葩的问题,搞的人极为头大。先说说笔者的环境吧。

  • ubuntu12.04 64位。用这个主要是笔者之前做的一些工作需要在这个环境上部署。这也是笔者这一段时间来极为头疼的事情。
  • gcc-4.6.3/g++-4.63。这个是系统默认的,这样导致了一个奇怪的问题。由于特殊的环境,便造成了各种奇奇怪怪的问题,虽然这些问题以后会以同样的方式重现,但是,也不失为以后遇到问题的一个思考方向。

安装cmake

笔者的环境中的cmake版本为2.8.7而LLVM需要的版本最低要求为2.8.12.2。由于apt-get安装的只能是2.8.7的了,无奈只能去官网上重新下载安装包了。官网给出的是最新版本的而且是可执行的文件,捣鼓了半天,在网上搜了半天都是啥./bootstrap啥的,可是这个压缩包中是没有这个文件的。只好下源码,通过源码安装。执行了git clone git://cmake.org/cmake.git克隆下来的是当时最新版本的3.4,为了报销起见,笔者还是觉得安装2.8.12.2版本的。那么问题就来了,怎样获得2.8.12.2版本的代码呢?笔者是这样干的:

代码语言:javascript
复制
git checkout git checkout -b 2.8.12.2 2.8.12.2 #钱一个2.8.12.2是笔者新建的一分支,后一个是tag也就是需要的版本号。
#这样就相当于,从指定的tag新建了一个分支,这样就可以获取指定tag的代码了。

$:sudo ./configure
$:sudo make
$:sudo make install

这样就安装好了合适的cmake了。

升级gcc和g++

原本以为这样就好了,事实上是笔者想的太多了。g++从4.7才开始支持C++11,而笔者所装LLVM版本为3.7已经有一些C++11特性了,自带g++4.6.3已经不能对其进行编译了。路有三条:

  1. 直接sudo apt-get install llvm clang一条命令搞定,可是安装的LLVM版本比较老,是3.0版本的。
  2. 和第一条路类似,降低LLVM版本,这就为难了——降到哪个版本呢?
  3. 笔者选择了第三条路,升级gcc/g++,通过笔者走的是保守路线,升级到4.8也不高也不低。升级过程还是比较顺利的;,添加新的源,直接apt-get安装,修改gcc和g++链接。
代码语言:javascript
复制
sudo add-apt-repository ppa:ubuntu-toolchain-r/test  
sudo apt-get update  
sudo apt-get install gcc-4.8 
sudo apt-get install g++-4.8  
cd /usr/bin
sudo rm g++
sudo ln -s g++-4.8 g++
sudo ln -s gcc-4.8 g++

后两步是必须的,不然默认编译器还是之前的4.6版本的。

安装LLVM和clang

总算把各种路障清干净了,接下来就更好办了,直接按照官方文档一步一步输命令安装即可。不再赘述,详情见参考资料。

参考资料

[1]: http://www.oschina.net/question/1030451_105857#tags_nav

[2]: http://blog.chinaunix.net/uid-23381466-id-3475968.html

[3]: http://clang.llvm.org/get_started.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 闲余说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述
  • 安装cmake
  • 升级gcc和g++
  • 安装LLVM和clang
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档