文章目录
写在前面
- 安装时遇到了很多问题,最核心的问题是版本问题,其余问题都比较容易解决,希望大家安装时一定要注意!!
- llvm对cmake和gcc的版本有最低要求,一开始选择了比较高版本的llvm(11.0.0)和较低版本的系统(Ubuntu 12.04),所以安装会出现各种BUG,而且解决起来比较棘手,最后不得已折中一下,选择llvm 7.0.0和Ubuntu 16.04,亲测成功,大家可以参考;
- 如果大家对llvm的版本没有要求,可以参考我选择的版本;如果有要求的话,尽量选择高版本的系统;如果系统更换不了,那就需要安装高版本的cmake和gcc;
下载源代码
-
从网站 https://releases.llvm.org/download.html#7.0.0 下载
cfe-7.0.0.src.tar.xz
和llvm-7.0.0.src.tar.xz
,并复制到虚拟机中; -
解压两个压缩包;
tar xf cfe-7.0.0.src.tar.xz tar xf llvm-7.0.0.src.tar.xz
-
将解压出来的文件移动到相应的文件夹下;
mv llvm-7.0.0.src llvm mv clang-7.0.0.src llvm/tools/clang
利用cmake编译构建和安装llvm
-
在llvm上层文件夹下,新建bulid和install文件夹,并进入build文件夹;
mkdir build mkdir install cd build
-
在build文件夹下进行安装,为了使程序已读和易于调试,关闭optimized:
#cmake ../llvm -DCMAKE_INSTALL_TYPE="Debug" -DCMAKE_INSTALL_PREFIX="../install"
-
cmake命令成功,紧接着执行make install;
make && make install
-
经过漫长的等待时间,出现下面的错误:
collect2: fatal error: ld terminated with signal 9 [killed]
compilation terminated.
-
参考博客https://blog.csdn.net/m0_43403238/article/details/85480314 对Ubuntu的硬盘容量进行扩容(大约需要80+G,本人用100G成功安装);参考博客https://editor.csdn.net/md/?articleId=112726356,对Ubuntu的swap空间进行扩容;
-
经过漫长的等待时间,安装成功;
-
测试是否构建成功:
echo $? => 0
-
在/build/bin文件夹下执行如下命令:(可以修改环境变量,就不用加入路径了)
./clang -v => clang version 7.0.0 (tags/RELEASE_700/final)