Ubuntu 16.4安装llvm和clang——从源代码的方式构建

写在前面

  • 安装时遇到了很多问题,最核心的问题是版本问题,其余问题都比较容易解决,希望大家安装时一定要注意!!
  • 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.xzllvm-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)
    

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41754258/article/details/112787311