首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

清华学霸直博简历火了:CPU、操作系统、编译器自己

起因是前几天清华的刘知远教授在一条微博上发了清华大学某位计算机专业的本科生的直博面试简历,简历上写着:实现了在自己的CPU上运行自己的操作系统,以及自己实现的编译器生成的程序.........刘知远还表示该同学简历上的这句“在自己的CPU上运行自己的操作系统,以及自己实现的编译器生成的程序”,反映的是一位热爱计算机技术少年的浪漫情怀。...该项目实现了在自己的CPU上运行自己的操作系统,以及自己实现的编译器生成的程序 以上的话题的主人公是清华计算机系本科生周聿浩同学(miskcoo),曾经是一名 OIer,第一次参赛就拿到了省一。...另外这个“在自己的 CPU 上运行自己的操作系统”项目,也是多人共同努力的结果,这一情况已经在RCore仓库下面做了详细说明。...关于“自己实现的编译器”部分,miskcoo 表示,本质上是基于编译原理课程的 Decaf 编译器修改而来,完成的情况比较丑陋。

99420

Linux编译器-gccg++

前言 gcc/g++是Linux中的编译器,vim是Linux中的编辑器。要想将代码运行起来还需要编译才可实现。 本篇文章,主要通过预处理、编译、汇编、链接来介绍gcc/g++。...头文件是开发环境中的一部分,不需要我们自己去配置。...Linux系统下,gcc/g++头文件默认路径: /usr/include/,去查看它即可 条件编译 有一个很深刻的印象,在下载安装pycharm时,需要选择安装社区版还是专业版。...编译 在VS中,编译器会检查语法是否有错误,如果没有错误,才会编译成汇编语言。Linux下的gcc/g++也是一样。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。

10710

LinuxLinux编译器-gccg++使用

头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...4.链接 链接的过程就是把的代码和C标准库中的代码合起来 gcc test.o 链接的过程,形成了可执行程序(可以指定可执行程序的名称) 可执行的二进制程序 ---- 二、函数库 我们要清楚我们的代码和库是两码事...C标准库是别人已经给我们准备好的,直接使用,我们所有使用库中函数的代码(比如printf)其中我们自己只写了该函数的调用,没有对应的实现,只有当链接的时候,对应的实现,才和我们的代码关联起来 链接的本质...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了...静态库如果不存在,需要自己安装!)

2.1K30

【C 语言】Windows 下使用 gcc 编译器 ( 常用的编译器 | Qt 中的 gcc 编译器 | 独立安装 MinGW )

文章目录 一、常用的编译器 二、使用 Qt 中的 gcc 编译器 三、独立安装 MinGW 一、常用的编译器 ---- 常用编译器 : MSVC GCC MinGW CLANG ; MSVC : 微软...MicroSoft 的 VC 编译器 , Windows 开发时使用该编译器 ; GCC : Linux 中常用的编译器 , 一般嵌入式 , Linux , Android 相关的都使用该编译器 ; CLANG...: MAC 中一般使用该编译器 ; MinGW : 全称 Minimalist GNU on Windows , Windows 中使用的 GCC 编译器 ; 二、使用 Qt 中的 gcc 编译器 -...--- Qt 中的 gcc 编译器其实是 MinGW 下的编译器 ; 在之前的 【QtQt 开发环境安装 ( Qt 版本 5.14.2 | Qt 下载 | Qt 安装 ) 博客中 , 安装 QT 开发环境时..., 涉及到了 MSVC 和 MinGW 两个编译器 , 因此可以在 Qt 的安装目录中找到 MinGW 下的 GCC 编译器 ; 目录 : Qt 根目录\Tools\mingw730_64\bin

2.6K50

LinuxLinux编译器gccg++的使用

gcc test.c -E -o test.i /usr/include/stdio.h //linux下的头文件路径 C:\Program Files\Microsoft Visual Studio\...劣势:形成的可执行程序体积太大,网络、磁盘、内存的资源占用量大, 2.动态链接 通过编译器内部的链接器,来链接标准函数库,值得注意的是,动态链接的时期是在程序运行的时候,如果程序需要链接,链接器就会链接标准函数库...stdio的std就是standard标准的意思 用这个库的程序非常多,但是库只有一份,所有用C语言的程序,就不会出现重复的库代码,所以如果以后我们要下载一个C程序,还用下载C标准库吗?...windows下动态库后缀为.dll静态库后缀为.lib 在安装vs2022时,我们安装的不仅仅是编译器本身,还要安装标准库的.h文件,以及标准动静态库等 5.Linux的大部分命令就是用C语言的...大家需要有这个认识,Linux中大部分指令都是用C语言的。

2.2K11

什么是linux Qt

Qt Linguist 等部分 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 WinNT/Win2k,Win95/98 平台。...: 优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX,...但是 Motif/CDER 的价格非常昂贵,在这同时微软的 Windows 图 形界面发展速度非常快,而 Unix 界的后起之秀 Linux 也急需一个可靠并且免费的图形界面。...由于 Linux 界的老大 RedHat 不喜欢 KDE/Qt 的版权,因此 RedHat 甚至专门派出了几个全职程序员来加入 GNOME 进行开发工作,于是一场同 Motif VS Openlook...当时双方的开发者在网络 上炒得天翻地覆,连 Linux 之父 Linus 只是说了一句喜欢用 KDE 都倍受指责。

6K20

make makefile cmake qmake都是什么,有什么区别?

具体使用时,Linux下,小工程可手动Makefile,大工程用automake来帮你生成Makefile,要想跨平台,就用cmake。...上个简图,其中cl表示visual studio的编译器,gcc表示linux下的编译器 ?...10.到最后CMakeLists.txt文件谁啊?亲,是你自己手写的。...13.你可以用Qt简简单单就实现非常复杂的功能,是因为Qt对C++进行了扩展,你一行代码,Qt在背后帮你写了几百上千行,而这些多出来的代码就是靠Qt专有的moc编译器(The Meta-Object...工程文件(.pro)相对来说比较简单,一般工程你都可以自己手写,但是一般都是由Qt的开发环境 Qt Creator自动生成的,你还是只需要按下那个邪恶三角形就完事了。

2.1K10

自己的面试题,自己想的答案

这个时候,也该详解下,自己的那些题目。因为题目是我自己的,并不是网上摘的,所以知识点比较基础,也不全面。如果大家对面试题有什么建议,欢迎指点。...在这里我想说,虽然开发上这样代码肯定会被批斗,但是面试题,考的不只是开发上遇到的问题,也有考一些基础知识。这道题就是其中之一。...而且,现在我也觉得还有必要知道这个知识,还没到全民 ES6 的时代,抛弃 ES5 的时代。...参考: 21条CSS高级技巧 css写作建议和性能优化小结 5.说下自己对模块化开发的理解,以及模块化开发的好处。...8.小结 面试题就是这10道,我自己的解决方案也说完了。

65120

linux(五)之vi编译器

前面介绍了linux的常用命令和对文本的操作,接下来我将对大家领略一下vi编译器的强大功能。 希望大家觉得的还不错的话可以点个“推荐”哦!...一、vim/vi编译器简介 Vim/Vi是一个功能强大的全屏幕文本编译器(Full Screen Text Editor),是Linux平台上最常用的文本编译器 用于建立、编辑、显示文本文件(linux...三、vim/vi编译器的简单使用 3.1、vi启动 输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。...四、Vi编译器常用的命令  3.1、在文件中移动光标 h:向左移动一个字符 l:向右移动一个字符 k:向上移动一行 j:向下移动一行 ^(即Shift+6):移动到当前行的开头处

3K80

Linux 定制自己Linux

# Linux 定制自己Linux # 基本介绍 通过裁剪现有Linux系统(CentOS7.6),创建属于自己的min Linux小系统,可以加深我们对linux的理解。...利用centos7.6,搭建-一个小小linux 系统,很有趣。...# 基本原理 启动流程介绍: 制作Linux小系统之前,再了解一下Linux的启动流程: 首先Linux要通过自检,检查硬件设备有没有故障 如果有多块启动盘的话,需要在BIOS中选择启动磁盘 启动MBR...Linux系统,里面的所有文件是需要拷贝进去的 作为能独立运行的Linux系统,内核是-定不能少,要把内核文件和initramfs文件也- -起拷到/dev/sdb.上 以上步骤完成,我们的自制Linux...就完成,创建-一个新的linux虛拟机,将其硬盘指向我们创建的硬盘,启动即可 示意图 # 操作步骤 可以问我要操作文档

13K30
领券