【ubuntu-18.04 安装clang 14 && cmu15445环境搭建的坑】

本文详细记录了在Ubuntu18.04上安装clang14的过程,包括两种方法,其中第二种方法成功。在安装后,配置CMU15445项目环境时遇到的clang版本不匹配、cmake版本不足以及gcc/g++版本过低的问题,都给出了相应的解决办法,包括修改CMakeLists.txt、升级cmake和gcc/g++版本。
摘要由CSDN通过智能技术生成


搭建CMU15445的project 0 环境,前面git的部分已经完成,接下来需要在ubuntu-18.04 安装clang 14

安装clang14 方法一(试过了对于我的谜之系统没有用)

参考博文: CMU15445(2023 spring) lab - 环境配置

使用命令:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo vi /etc/apt/sources.list

llvm官网,找到对应ubuntu版本的语句,粘贴复制到 /etc/apt/路径下的sources.list文件中
例如:对于Ubuntu18.04应粘贴复制以下代码:
在这里插入图片描述
然后执行以下语句

clang -v   #若之前有下载过clang,需要提前查看版本便于后面选择
sudo apt update
sudo apt-get install clang-format clang-tidy clang-tools clang
sudo apt-get purge clang-10 # 卸载老版本,按实际情况选择参数
sudo apt-get purge libclang-10-dev

最后通过clang -v检验是否下载成功

我在该方法的尝试中,执行语句sudo apt-get install clang-format clang-tidy clang-tools clang没有成功,会提示如下图等有依赖 导致安装失败,遂尝试方法2。
在这里插入图片描述

安装clang14 方法二 (成功)

参考以下博文:
ubuntu20.04 安装clang
ubuntu14.04安装clang
在 Linux 下使用 clang 3.0 + llvm 3.0 + libc++

官网github中,找到自己ubuntu版本的链接,如下图所示,我要找的是14.0.0版本的clang,系统是x86_64-linux-gnu-ubuntu-18.04
在这里插入图片描述
点击改行,把clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz下载到自己电脑上后。可以先放到虚拟机的桌面上,然后sudo cp 文件名 /usr/local/,把文件复制到 /usr/local 文件夹下。接下来执行语句:

cd /usr/local
sudo tar xvf clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz      #解压缩包
sudo mv clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04 llvm 
#将解压缩后的clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04文件夹重命名为"llvm"并移动到当前目录下
export PATH="$PATH:/usr/local/llvm/bin"    #添加临时环境变量

可以采用 ubuntu添加环境变量的四种方法 中的第四种方法,永久添加至环境变量中

sudo vim /etc/environment #修改environment文件
#在PATH="/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin"中加入 ":命令行路径"


最后尝试clang -v,终于成功
在这里插入图片描述
有需要的小伙伴可以多试试几种方法


下载好clang14后,继续配置cmu15445环境

以下,如果同是配置cmu15445的同学可能会出现以下问题:

  • clang14后会出现"!! We recommend that you use clang-12 for developing BusTub. You're using xxx, which is not clang." 可以根据 CMU15445(2023 spring) lab - 环境配置 所述在CMakeList.txt中添加自己的clang路径
    set(CMAKE_C_COMPILER "/usr/bin/clang")
    set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
    
  • 后续在 cmake ..make -j 4 过程中,提示了我的cmake等级不够,于是升级cmake版本: 在Linux上安装其他版本的cmake 或 升级cmake
  • make -j 4 的时候,运行到93%报错 提示 fatal error: 'charconv' file not found,如下图所示
    在这里插入图片描述
    于是根据 这篇文章 发现,是gcc g++版本太低 gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) ,至少是8.1版本支持 charconv,于是参考 Ubuntu18.04 GCC9 安装Ubuntu问题——Ubuntu18.04 更新gcc和g++的版本号升级gcc和g++版本至gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~18.04)
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install gcc-9 g++-9
    cd /usr/bin
    sudo rm gcc g++
    sudo ln -s gcc-9 gcc
    sudo ln -s g++-9 g++
    
    成功更新gcc g++版本,再执行make命令,成功执行到100%
    在这里插入图片描述

测试:

cd build
make starter_trie_test
./test/starter_trie_test

显示YOU HAVE 5 DISABLED TESTS
在这里插入图片描述
修改test/primer/starter_trie_test.cpp文件,删除五处的测试名 DISABLED_ 前缀

// TEST(StarterTest, DISABLED_TrieNodeInsertTest)
TEST(StarterTest, TrieNodeInsertTest) { ... }

//TEST(StarterTest, DISABLED_TrieNodeRemoveTest)
TEST(StarterTest, TrieNodeRemoveTest) { ... }

//TEST(StarterTest, DISABLED_TrieInsertTest)
TEST(StarterTest, TrieInsertTest)  { ... }

//TEST(StarterTrieTest, DISABLED_RemoveTest)
TEST(StarterTrieTest, RemoveTest) { ... }

//TEST(StarterTrieTest, DISABLED_ConcurrentTest1)
TEST(StarterTrieTest, ConcurrentTest1) { ... }

再执行测试语句,成功

格式化:

$ make format
$ make check-lint
$ make check-clang-tidy-p0
Ubuntu-18.04-x64 是一款基于Debian Linux的操作系统版本。它是由Ubuntu社区开发和维护的,主要用于个人电脑和服务器。 Ubuntu-18.04-x64 提供了现代化的桌面环境,采用了GNOME 3作为默认桌面,为用户提供了友好且直观的操作界面。它还支持多种自定义选项,让用户能够根据自己的需要对桌面进行个性化设置。 作为一款开源操作系统,Ubuntu-18.04-x64 提供了丰富的软件资源。用户可以通过Ubuntu软件中心轻松安装和管理数千种免费的应用程序。此外,用户还可以通过终端命令行使用包管理器apt-get来安装其他软件。 Ubuntu-18.04-x64 还提供了强大的安全性。它内置了防火墙和安全更新功能,可以及时修补系统漏洞,以防止恶意软件和网络攻击。同时,它还支持文件加密和用户帐户管理,用于增强用户数据的安全性和隐私。 对于开发人员和系统管理员而言,Ubuntu-18.04-x64 是一个理想的选择。它提供了广泛的开发工具和环境,包括Python、C++、Java等编程语言和Apache、MySQL、PHP等服务器软件。此外,Ubuntu-18.04-x64 还提供了轻量级容器技术Docker和Kubernetes,方便用户进行应用程序的部署和管理。 总结来说,Ubuntu-18.04-x64 拥有强大的功能和高度的可定制性,适用于不同类型的用户。无论是高级用户、开发人员还是普通用户,都能够在Ubuntu-18.04-x64 上获得良好的使用体验和稳定的系统性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值