CMU15445(2023 Spring) lab - 环境配置
作者:mmseoamin日期:2023-12-11

文章目录

  • 系列笔记
  • 前言
  • 参考链接
  • 环境配置

    系列笔记

    环境配置

    Project 0. C++ Primer

    Project 1. Buffer Pool

    Project 2. B+Tree

    前言

    早就想做15445(fall 2020)的lab了,鸽到了现在,赶紧做一下,写一点自己做的时候遇到的坑什么的,记录一下。因为教授禁止上传自己的代码到public,所以本文基本不会出现作业代码内容,只是写一些做的时候遇到的事情和一些思路,做备忘用(写不写还另说呢)。

    然后我其实是想做2020FALL的,后来在做P0的时候发现那个文件(src/include/primer/p0_starter.h)怎么找也找不到,一直耽误了好久,才发现github库更新成2023年的了。,。。。那就将就着做2023 Spring吧

    参考链接

    课程官网(2023,废)

    课程官网

    环境配置

    先配置环境,官方建议的是使用Ubuntu(20+)、MacOS,不推荐使用WSL,不过我就要硬着头皮上(),以后出了问题再说吧。以下流程大体来自官方文档。

    创建一个私有库

    在这里插入图片描述

    git clone --bare https://github.com/cmu-db/bustub.git bustub-public
    cd bustub-public
    git push git@github.com:JMC2002/CMU15445.git master # 记得换成你自己的!
    

    删除本地克隆,拉取自己的

    cd ..
    rm -rf bustub-public
    git clone git@github.com:JMC2002/CMU15445.git # 记得换成你自己的!
    

    在这里插入图片描述

    这一步其实是用来更新官方文件的,但是这都是三年前的lab了,其实不太会有更新,还是做上吧。

    git remote add public https://github.com/cmu-db/bustub.git
    

    在这里插入图片描述

    检查一下是否添加成功

    git remote -v
    

    在这里插入图片描述

    然后是build

    安装包

    sudo build_support/packages.sh
    

    注意,这里不出意外的话会有点问题,会报错找不到clang-14包,我们这样做:

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

    把下面的东西添加进去,下方来源

    deb http://apt.llvm.org/focal/ llvm-toolchain-focal main
    deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main
    # 14
    deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main
    deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main
    # 15
    deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main
    deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main
    # 16
    deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main
    deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main
    
    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版本(本课程实际上使用的是clang14)

    clang -v
    

    在这里插入图片描述

    修改一下Cmake,不然不出意外会抛一个warning:"!! We recommend that you use clang-12 for developing BusTub. You're using xxx, which is not clang."。这个其实应该没啥事,不过看着不爽。字符串里填的是你自己clang的安装地址。

    set(CMAKE_C_COMPILER "/usr/bin/clang")
    set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
    
    mkdir build
    cd build
    cmake ..
    make -j 4 # 加速
    

    在等编译的时候,可以先去gradescope注册个号,点击右上角Sign Up

    在这里插入图片描述Student

    在这里插入图片描述

    课程号填PXWVR5(2022 FALL),2KJRB5(2023 SPRING),学校填Carnegie Mellon University,填好其他信息及邮件,会给你的邮箱发送一封设置密码的邮件,密码要求最短12位。这个验证码是专门提供给非CMU学生的,来自FAQ,不得不说国外大学就是好,专门把课给你放出来,还生怕你提交不了作业,啧啧。

    在这里插入图片描述

    成功登录后可以看到已经加入成功了。

    在这里插入图片描述

    这个时候我们发现已经编译完了

    在这里插入图片描述

    测试

    cd build
    make check-tests
    

    这是测试全部的,注意看官方文档,这一步应该会报挺多错。

    在这里插入图片描述

    然后也可以执行单个测试:

    在这里插入图片描述

    OK,WSL上的环境就配置得差不多了。

    然后VS上登录github,克隆自己的那个库,就可以直接编辑了,把clangd、cmake、wsl一系列东西下好,是支持直接校准格式以及调试云云的~ VScode和Clion其实教程多不少。