【CMU15-445数据库】bustub 项目介绍及环境配置

news2024/11/17 17:27:45

开新坑啦

突然想起来之前一直想做的 CMU 15-445 课程的 2022 Fall 学期开课了,所以决定把 Pintos 项目先放一放,开个新坑跟着 CMU 同步把这个项目做了。

课程网站:CMU 15-445/645 (FALL 2022)

老规矩课程内容就不说了,课程网站的 Schedule 页能找到每节课的 Slides 和 Video(目前还在更新中),直接来看项目。

在这里插入图片描述

简介如上。本项目使用 C++ 编写,标准给到了 C++17,想要完成的话至少要有 C++11 的相关知识(智能指针、右值语义等)。共有 5 个 Project:

在这里插入图片描述
(写本篇博客时最后一个 Project 还未放出)

其中 Project 0 比较简单,主要是测试一下 C++ 的水平。如果读或写起来比较吃力,可能需要再补一些 C++ 的知识。测试方面,项目中已经包含了一组基于 GoogleTest 的自动测试,通过后应提交到 GradeScope 网站,该网站会用一组更详细的用例测试你的程序,使用方法会在下面介绍。项目遵循 Google C++ Style Guide 编写规范,每次代码提交前必须通过 clang tidy 的格式检查,不允许出现 Warning,否则在 GradeScope 上提交评分为 0。

环境配置

课程的 Github 仓库 中已经给出了很详细的配置教程,一定注意本课程明确说明了不要将代码放到 Github 的公共仓库中

在这里插入图片描述
本系列博客我也不会放出完整的 Github 仓库,只会在讲解思路时贴部分关键代码。如有问题欢迎私信交流~

项目要求 Linux 环境,实测使用 WSL2 安装 Ubuntu 20.04 LTS 系统没有任何问题。第一次编译可能比较慢,建议使用 make -j4-j8 参数加速。

如果编译时出现了提示信息(不会报错,在 CMake 输出的所有信息比较靠上的地方):WARNING "!! We recommend that you use clang-12 for developing BusTub. You're using xxx, which is not clang."xxx 的地方可能是 g++ 或其它编译器,说明 CMake 在用那个编译器而非环境配置步骤中已经安装的 clang-12。解决方法是先找到 clang-12 的安装路径(一般在 /usr/bin/ 目录),然后在项目主目录下的 CMakeLists.txt 中加入以下两行:
在这里插入图片描述
(博主不确定用 g++ 会不会有什么问题,但总之消灭 Warning 是好事情)

另外如果任何 sh 脚本或 make 命令运行时提示 xx\r 有问题,是由于 Windows 系统和 Linux 系统的换行符(CRLF 和 LF)不同导致的,可以参考这个回答,操作前一定要把所有更改 commit

课程为非 CMU 学生也提供了 GradeScope 评分权限(赞),点击右上角 Sign Up,填入课程码 PXWVR5学校选择 CMU(不是你自己的学校),下面填自己的信息。

在这里插入图片描述
注册成功后可以看到已经自动加入到本课程中了。每个 Project 的 Submission 部分会指引怎么打包代码文件并提交。

在这里插入图片描述
至此配置完成,可以开始愉快的写码了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十三届蓝桥杯C++B组国赛H题——机房 (AC)

目录1.机房1.问题描述2.输入格式3.输出格式4.样例输入5.样例说明6.数据范围7.原题链接2.解题思路3.Ac_codetarjan倍增LCA1.机房 1.问题描述 这天, 小明在机房学习。 他发现机房里一共有 nnn 台电脑, 编号为 1 到 nnn, 电脑和电脑之间有网线连 接, 一共有 n−1n-1n−1 根网线…

【Linux】基本的指令(三)

大家好我是沐曦希💕 Linux专栏:Linux零基础学习 文章目录1.时间相关的指令2.Cal指令3.find指令:(非常重要)-name4.grep指令5.zip/unzip指令6.写在最后1.时间相关的指令 date显示 date 指定格式显示时间: date %Y:%m:%d date 用法: date [OPT…

基于javaweb的oa办公管理系统(java+layui+ssm+mysql+jsp+html)

基于javaweb的oa办公管理系统(javalayuissmmysqljsphtml) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基…

迅为iMX6ULL开发板NXP嵌入式ARM核心板Linux系统i.MX6ULL超STM32

核心板参数 尺寸: 38mm*42mm PCB: 6层 CPU: iMX6ULL ARM Cortex-A7架构 单核 iMX6ULL 商业级: 内存:512M 存储:8G EMMC iMX6ULL 工业级: 内存:256M 存储:512M FL…

python正态分布中的normal函数

python正态分布中的normal函数 概念 1、正态分布又名高斯分布,是人们最常用的描述连续型随机变量的概率分布。 在金融学研究中,收益率等变量的分布假定为正态分布或者对数正态分布(取对数后服从正态分布)。因为形状的原因,正态分布曲线也被…

Mysql实战调优拾遗三

Mysql实战调优拾遗三优化小细节(续)索引监控查询优化查询慢的原因优化数据访问执行过程的优化查询缓存语法解析和预处理查询优化器优化器的优化策略优化器的优化类型关联与排序优化优化特定类型的查询优化count查询优化关联查询优化子查询优化group by 和…

DOS 命令

前提:打开命令行,winr打开窗口输入cmd回车 1、如何操作DOS命令 建议:初学者在虚拟机中完成实验!!! 开始 --- 运行 --- 输入cmd --- 回车,将调出C:\windows\system32\cmd.exe 或者 win R --- 运…

BH1750( GY-302 )光照传感器

文章目录一、产品简介二、IIC通信三、BH1750的使用四、程序源码这里我先简单的介绍一下BH1750光照传感器模块的基本信息(不多废话),我将着重讲解它的使用部分,相信对于屏幕前的你也是更关心它是怎么使用的,OK,gogogo!&…

2019第一届长安杯

检材一 案情简介 在一起电诈案件中,受害者称自己的银行卡被他人冒用,曾收到假冒公安的短信,因为 自己在一个 P2P 网站中理财,假冒公安称该网站已被列外非法网站,要自己到公安备案网站 填写自己的信息,并…

基于javaweb的crm客户关系管理系统(java+springboot+mysql)

基于javaweb的crm客户关系管理系统(javaspringbootmysql) 运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javawebsp…

云扩研习社 | RPA高级开发技巧(上)

高级元素选择技巧 XPath介绍 XPath是标准的结构化查询语言,内置丰富的语法、高阶函数可以提供非常强大的目标元素特征描述能力。 XPath是一种强大、复杂的查询语言;XPath与编辑器中内置的选择器没有本质区别,均可作为元素特征描述&#xff…

毕业设计 基于51单片机老人防跌倒GSM短信报警系统

基于51单片机无线蓝牙APP控LED灯亮灭亮度设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 GSM SIM800A模块电路设计2.2 蜂鸣器报警电路(低电平有效)设计2.3 ADXL345倾角传感器模块电路设计2.4 DS18B20温度传感器模块电路设计3、部分代码展示…

面试官问我 “A + B” 算法,我懵了

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

逆向学习-UltraEdit安装

一、相关软件安装 1、UltraEdit 1.1、简介 UltraEdit 是当今销量第一且最为强大的一款高性价比的文本编辑器。尽管不是一款开源软件,但多数程序员都使用这款编辑器,支持多种编程语言的语法着色和外挂编译功能。UltraEdit 是理想的文本、HTML 和十六进…

最新|全新风格原创YOLOv7、YOLOv5和YOLOX网络结构解析图

💡本篇分享一下个人绘制的原创全新风格YOLOv7网络结构图、YOLOv5网络结构图和YOLOX网络结构图 个人感觉搭配还行,看着比较直观,所以开源分享一下。 文章目录YOLOv5 网络结构图(最新 推荐🔥🔥🔥)YOLOv7 网络…

【C++笔试强训】第十三天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

YOLOv5、v7改进之三十八:引入RepVGG模型结构

前 言:作为当前先进的深度学习目标检测算法YOLOv7,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv7的如何改进进行详…

基于javaweb的养老院管理系统(java+springboot+thymeleaf+html+js+mysql)

基于javaweb的养老院管理系统(javaspringbootthymeleafhtmljsmysql) 运行环境 Java≥8、MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于…

synchronized到底锁的是谁、何时生效

一、synchronized锁的几种形式 synchronized修饰普通方法synchronized修饰静态方法synchronized修饰代码块 1、synchronized修饰普通方法 简单示例 public class Test{private String age;private String name;public synchronized void print(String arg1, String arg2) {…

零代码,让业务人员实现应用创造自由

摘要:以汽车营销场景为例,从AppCube零代码和业务大屏入手,帮助开发者更好地理解AppCube低代码和零代码异同点,在实际使用时能更快选取更合适的工具能力,实现应用构建效率最大化。本文分享自华为云社区《DTT第8期直播回…