在Ubuntu中用CLion来管理LLVM/Clang工程 |
您所在的位置:网站首页 › 安装llvm-debug › 在Ubuntu中用CLion来管理LLVM/Clang工程 |
前言1、安装配置CLion1.1、换源1.2、下载安装CLion1.3 、配置C/C++编译环境
2、编译LLVM/Clang2.1、获取llvm-project2.2、LLVM编译环境配置2.3、编译LLVM/Clang
3、总结
前言
LLVM作为一个大型的编译套件,各种类继承关系,函数调用等十分繁杂,在Ubuntu下为了更好的,更方便的阅读LLVM套件的源码,希望通过CLion这个优秀的ide来管理这个工程。以下详细的记录了我在Ubuntu18.04.1中安装CLion和编译LLVM/Clang的步骤。对于初学者十分友好!!! 1、安装配置CLion 1.1、换源目前我的系统仍然是刚刚安装的Ubuntu,先换上阿里源(以方便后续快速下载安装依赖包) # 1.先用root权限打开sourses.list文件 $ sudo gedit /etc/apt/sources.list # 2.将文件中原有的内容删除,复制粘贴下面阿里源,保存退出 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse # 3.在shell中输入以下指令更新 $ sudo apt update && sudo apt upgrade 1.2、下载安装CLion在CLion官网获取CLion的安装包,此处我安装的是2019.3.6版本 此时,用户目录会有以下两个文件: 首先会弹出以下要你选择配置文件的窗口,选择Do not import settings,然后点击OK即可。 在安装好CLion后打开CLion,如下图: 这时候重新打开CLion,会发现刚刚那个test工程可以build和run了(咦,我们好像没有安装CMake,应该是clion里面已经集成CMake)。我们可以通过点击File->Settings->Build,Execution,Deployment->toolchain看一下,可以看到CLion已经自动找到了刚刚安装的gcc,g++和make,如图: 进入LLVM下载界面,我目前的稳定版本更新到11.0.0,如下图: 得到llvm-project-11.0.0文件夹,进入其中,其目录树如下: . ├── clang ├── clang-tools-extra ├── compiler-rt ├── CONTRIBUTING.md ├── debuginfo-tests ├── flang ├── libc ├── libclc ├── libcxx ├── libcxxabi ├── libunwind ├── lld ├── lldb ├── llvm ├── mlir ├── openmp ├── parallel-libs ├── polly ├── pstl ├── README.md └── utils 2.2、LLVM编译环境配置编译LLVM需要很多的依赖包,官网的要求如下: 这样,依赖包就装好了!下面进入更重要的环节!也是我踩过最多坑的地方!! 编译Debug版的LLVM套件不仅需要很大的内存,而且编译得到的文件会消耗很多磁盘空间!! 所以首先保证你的虚拟机的磁盘空间最好在100G以上! 接下来就是内存了,我自己一开始仅仅开了8G内存,在链接clang的时候直接内存爆掉了。那么怎么处理内存的问题呢,首先,我将虚拟机的内存开到了12G(物理机是16G),然后挂载了一个8G的swap分区!根据经验,你的内存+swap分区大小最好>16G!! 根据以下命令,扩大swap分区大小: # 1. 创建8G的空文件,以备挂载为swap分区(该过程可能需要半分钟) $ sudo dd if=/dev/zero of=/tmp/swap1 bs=1M count=8192 # 2. 将/tmp/swap1格式化为swap分区,重启后自动没了 $ sudo mkswap /tmp/swap1 # 3. 挂载 $ sudo swapon /tmp/swap1 # 4. 用free指令看一下交换分区大小 $ free -h # 5. 显示如下,可见在我系统中内存+swap分区大小已经有了20G左右 total used free shared buff/cache available Mem: 11G 1.4G 136M 18M 10G 9G Swap: 9G 0B 9G至此,编译环境都准备好了,接下来在CLion中编译LLVM/Clang!!! 2.3、编译LLVM/Clang首先,在前文所说的llvm-project-11.0.0目录下创建build目录,作为构建的目录: $ cd ~/llvm-project-11.0.0/ $ mkdir build然后打开CLion,点击Open File or Project,然后选择llvm源码文件夹,点击OK打开,如下图:
编译LLVM的Debug版本需要特别大的内存,我在实践中还是编译的RelWithDebInfo版本,对于阅读源码调试源码暂时够用了。以下是我的CMake参数配置: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |