00:00
刚才是做两步操作,第一步什么编译一个程序,是不是一步步编译,那还能回忆起来吗?四步。忘了啊,无所谓了啊,预处理编译汇编链接是不是啊,对,我们只需要知道这四步就行啊,这个在现在为止咱们很多错误情况下,因为用眼睛看就能看到这种错误知知道吧,所以说我们调错误就很容易知道吧,等你后面就比如说这个出现一个错误啊,就很难调整的时候,那你就需要怎么的,需要给他这个,比如说我到汇编语言下面看一下,到底这个是什么样一个错误,是不是,或者说我到底是哪一步出错了,可以这样是分步去看一下这个程序到底是哪步出错了啊,啊,这个是后期会很有用的一个东西啊,那同样的咱们这里面还有什么,还有一个是。链接这个动态库的一个区别啊,那一般情况下我们这个库都是怎么的,不同平台啊,不同的库,那就是第四步是不是链接库的时候会那个链接很多库,那我们在这里面看一下Linux平台下面是。LDD,然后这里面加上你可执行程序,它给你显示它链接的很多库,那不知道大家知不知道这个是点OV结尾的叫什么库啊。
01:08
叫这个叫静态代码库是不是啊?呃,不知道的情况下,我跟你说了一遍,叫静态代码库,呃,我们可以查看一下我们这个可执行程序是哪个,是a.ELFLDD,然后是A-e of,呃,EF,查看一下它所使用的这个库都有哪些啊,你看一下我们能看懂这个都有哪些,第一个是什么?第一个是。呃,get.so是不是点so为结尾的都是什么?都是这个库啊,这也是lab c,那你看啊,Lab是什么,Lab是这个,是这个lab和lab是个单词,C是个单词,就是C的什么啊,代码库是不是啊,那需要使用,那这个CA代码库支持的是哪一个,指的支持的是这个是Linux下面的这个GU这个什么标准协议是不是啊,那它是这是什么呀,C语言的这个代码库,然后是和什么呀,和这个是GU下面这个库啊。支持以及什么,以及这个是Linux的这个平台库,是不是也需要支持啊,这也是他需要支持的这些库啊,总共就是这些,那同样在我们什么,在我们这个Windows里面,它也也也可以查看这个库是使用一个工具叫depend的,那我这里面有给大家打开看一下。
02:15
啊。打开我们这个底片的库,像我们这个应用程序拖拽这这里面来就可以啊,那我找一个应用程序,咱们之前写了一个程序放在哪呢?放在code里面去了吧,扣的a.ES1和b.ESSE都行,拖拽过来一个啊。来看一下,那这里面你不用管这个错误啊,你先不用管,那这里面也是什么,也是他这个很多库啊,那看一下都有哪些。好,那这里面这个是什么,是结尾什么为结尾的DL,我前面跟大家说了吧,啊,这是这是库是不是啊,那这个它这里面还有什么各种各样的这个细分,你看它还有这个什么这个顺序啊,什么什么具体的函数啊,是不是都有吧,那这里面就是这个是对应什么呢?对应的是Windows下面这些库知道吧,然后后面很多时候,你比如说你写一个什么,写一个这个。
03:02
程序它都会有这个DLL,就是动态,这叫动态什么库啊。啊,动态链接库是不是啊,你就是放在里面就可以去链接了,就是你比如写俩程序啊,再写个动态链接库就可以去使用了啊这样的情况啊,这里面用的是俩,看一下都哪两个是。K Neel,三二这是一个什么,这个你看一下三二就知道应该是啥意思了,32位情况下这个什么,这个是系统的一个库是不是,然后还有是MSV,呃是CTCRT,那你看这是应该是什么,应该是跟什么相关的,跟这个,呃,这个window,这这是跟Windows相关的吧,我看这俩啊。啊对,这俩应该都是跟这个,甚至Windows这个什么API里面代码相关的,知道吧?啊,它也是什么,一个C语言的库,一个是Windows库啊呃,不是不是一个C语言的库,一个,呃,是一个C语言的库,一个Windows的库吧,那是这样的啊,我再说一遍啊,刚才可能乱了,那这俩库就是在分别代表什么,代表是一个支持C语言的库,一个什么,一个是Windows它本身系统的那个库啊这两个库加下来就可以怎么的,就可以去编译一个可执行程序了,那这里面很多文件是打不开的,你也不用去管它啊,这东西可以通过这个去查看一下,这个里面的库都有哪些,是不是啊去使用那有些程序,比如说你一突然进来之后,它就出现了,说这个某某库丢失,你可以上网上去下载这些库,知道吧,这些静态库,比如说这个呃,一般情况下我看哪个呃比较多一点呢。
04:28
大家不知道知不知道这个叫什么,知不知道这个叫呃,魔兽争霸争霸三那个那个东西啊啊对,一般情况下就是如果说玩过这个游戏的人都知道说,呃,需要一个什么动态库,是不是一下载下来,然后能改成通辨率什么的一些东西,是不是就是你可以从外面再去改程序里面一些东西了,是不是,那就是需要这个库的一些加载啊,那就是后面情况下咱们也会学到,这是对平台库的一个依赖。然后在接着这个之后,咱们就说一下那个CPU这个事儿,咱们前面已经跟大家说了吧,再把图打开。打开画图板啊,咱们把那个东西说一下。
05:02
文件打开这个程序执行过程。那这里面设计的东西是设计什么,设计内存,呃,内存储器和这个中端处理器的一个运行过程,那这里面看一下它的一些结构啊,我们这个处理器和这个呃,都分什么呀,都分这个64位和什么呀,和这个32位这个区分知道吧,就是我们这个64位操作系统和什么32位操作系统,能看一下我这个Windows电脑是多少的这个操作系统啊计算机,然后选择。任换器这是什么?64位操作系统,然后基于64位的处理器是不是啊,它俩一定要保持什么一致,是不是才可以啊,那那我看一下我这个什么,我这个呃,Linux里面是多少,大家知道吗。啊,那你看怎么看一下就知道了,是。我通过这里面编译个程序,是不是我通过这个feel,然后是A杠。呃,Elf是吧,你执行一下,他告诉你这是一个什么呀,一个32位的这个什么系统吧,是不是啊,所以这俩系统不一样,你编写的程序在不同的系统下面怎么样运行,它也可能出现各种各样的问题,是不是,那这个你说一下我我什么呀,我这个Windows电脑中虽然是64位的,但是我这些开发环境,就像VS和这个QT都是什么呢?都是32位的,对,一般情况下你看一下这个,呃,VS这里面有有有一个能改什么,能改这个。
06:22
等一下我得启动几个程序啊。呃,启动程序一个程序之后,这有个什么,这有个debug后面有个这个,这个是叉八六是不是,你你点这个下菜单,这有个叉六四,然后还有个配置管理器是不是,那这个配置管理器现在所在的平台是多少呢?WIN32平台就是我们32位操作系统知道吧,那你看对应是哪个,对应叉八六这是什么?对应的就是我们这个32位平台下面了,是不是你还可以切换另外一个什么六四位,你看这平台一下换成哪儿了,64位了,这两个编程是有区别的,比如说我们什么我们当我们这个切换到什么,呃,64位,它对应的就是64位的这个操作了,32位就操32位操作,但是不需要大家去修改啊,默认32位就可以了啊,不需要你去修改啊。
07:11
同样我们也知道,我们这个Linux服务器也是32位就行了,这是我们的这个。呃,64位,32位系统的一个区别啊,那看一下这里面有些话给大家读一下,这是什么,就是。呃,器是CP内部基单元,这话解决个内容容。呃,寄存器是CPU内部的基本存储单元,但是这里面写了一个G是暂时居住的吧,是不是暂时居住的这个东西是在CPU内部作为一个什么数据暂时存储的一个东西啊,那CPU对外是通过什么去连接的,这个这个词是不是看到了吧,总线来连接的,和外部设备进行什么呀交互的是不是,这里面说过一句话是总线的宽度是八的,同时CP器是八的,那么这么就叫一个什么叫八的CP。
08:02
那我这里面是一个什么,比如说是一个什么,是一个64位的总线带宽64位的计算器60,所以说这个CPU叫什么,64位的什么呀,处理器是不是你刚才看到了吧。在哪看到的,我再给你来一遍啊。计算机,然后呃,系统这里面有什么64位的处理器吧,啊,那64处理器处理的速度会不会比32位的更高一点呢?当然会了,是不是,你想想它这里面交互都是用什么交互的,总线交互的,那总线这个位数越多,是不是它交互的数据量就越越粗啊,啊不是就是越宽呢?你就相当于举举之前给大家举水管的例子吧,这么粗水管能流多少水啊,这么粗水管能流多少水啊,是不是立马就是见高下了吧啊。但是这里面还有一种区分就是什么,就是这个看一下啊,这种啊是有一种CPU内部计算器是32的。但总线是什么?16位的叫什么准32位的就是他就是什么呀,最高他能跑多大的跑32是不是,那就给大家举个例子,比如说这个一小哥计存器呃车呃就是就什么就是送快递小哥是不是他车能装32个货物是不是,但是他一天能送多少个货呢?16货是不是?呃呃,所以说叫什么准32位,就说他这一天最多可能送多少个货啊,32个货,为什么?因为我最车里最多能装多少个32个货是不是啊,那就是比如说他加加班加加点是不是也可能送32个啊,但是这个理想值最多就是多少个16个是不是啊,那就保证带宽那个全部被占用啊,那比如说这个小哥开了一个这个卡车,这个卡车里面装64个货,然后他这个卡车速度也快,是不是每天能送64个,那这个代表什么呀?一个一个是标准的叫什么?呃,64位这个准的加前面加一个标准和准是两个概念啊,那你知道一下行,这是那个啊,32和64位系统的一个区别啊,啊还有一句话就是最后一句话需要你怎么着,需要你记住的是六。
09:55
14位不能运行在32位的CPU之上,知道吧,但是32位能运行在64位之上吗?可以上面有这句话啊,这这两句话看一下啊,这是它的一个什么呀,一个这个区别可联系啊,那同样那计算器就有什么名称,看一下这里面比如说八位计算器都是什么,Abcd往下排的是不是16位情况下加什么,加上一个,然后个12后个是14么。
10:22
RA,那你看这在当时我在这个这个Linux里面执行到哪一步的时候,执行到这个。呃,这步还是这步啊,还是这步这步啊。a.S的时候吧,还是a.S是汇编吧,a.S汇编的时候是不是我们看到了这个,这个是ES啊,那ES就是什么,这是我们的这个是计听器,它就是它定义了很多这个这样的数据啊,那我们看一下这个是这这个我们了解还行啊,然后看一下这个寄存器,缓存和内存之间三者的一个联系。那我们这个什么呀,按照与CP远近来分离,最就是这个,就是我们数CC远近C。
11:15
呃,他们仨啊,是这样的,是怎么的是呃呃这个重新读一下啊,计算机CPU在计算时预先把要用到的数据从硬盘读到什么内存中,是不是前面说前面说画个图吧,然后再将用呃再将,然后再把。即将要用的数据读到均器中啊,于是CPU均匀器内存他们仨之间这个什么信息交互了吧,啊,这个之前写的话怎么就读这么别嘴呢,瘪嘴。那我到时候再改一改啊,啊,那么这个,那么为什么要有缓存呢?这缓存是做什么用的,缓存是这个。硬盘和内存之间呢,有这个缓存,为什么需要有缓存呢?比如说我们在说这个内存和这个这个外存储器之间,就是硬盘之间,我们需要怎么的,就是比如说读一些文件,这个文件读完之后,我需要再把文件写回什么中,再写回这个内,呃硬盘中是不是再读再写,再读再写,再读再写,这样情况下我就是频繁的去操作硬盘,这是一个很浪费时间的行为,为什么浪费时间呢?因为磁盘的情况下会有这个磁道,是不是每个每个文件都在不同的磁道里面,是不是我找个磁道,再找磁道,再找磁道,这样来来回回切磁道是很慢的,那个时间是不是,为什么那个叫什么,叫什么硬盘比较快了,那个叫固态硬盘比较快呢?它是能横向的切,是不是咱们这个正常机器硬盘得一圈一圈的切知道吧,所以说比较慢啊,所以说这个需要缓存的,那缓存之后怎么拿回来,我先把这个文件只要打开之后我就先。
12:42
放在什么中,放在缓存中,我用的时候就跟这个数据交互,用的时候数据交互,等我真正的把这个东西关闭了之后,再给它放在什么中,再给它放在这个硬盘中,这样的情况是不是就速度就很快了,所以说这是它的缓存的一个概念啊。啊,因为缓存提取的速度远要高于内存,当然这个缓存的这个价格肯定也远高于内存,不然的话机器就没这怎么说这句话了呢。
13:08
嗯,为什么会有啊,为什么会,呃,好像读错了是吧,为什么会有缓存呢?因为老师操作同一块内存地址数据的时候,会影响这个速度,当然这个是这是怎么呢?就是我是通过什么去打开一个文件来说这是内存这块的,是不是它和硬盘去交互的那个那个什么那个缓存这个区域啊。所以说你了解一下行那是怎么的,就是如果说你整个电脑要配置好情况下,硬盘配置好是不是,然后谁配置好啊,是这个CPU要好是不是,然后总线要要什么要好,然后还有什么,还有这个是CPU好,整体的速度才能怎么统一提升上来是不是?那一般情况像我们做开发的时候,那就是呃,标准的配置就应该是4G,然后是64位就可以了啊,这是标准带宽,有同学问我显卡呢,显卡跟这个一点关系没有啊,显卡是做什么用的,显卡是这个一般情况做显示输出用的是不是?比如说你玩一些大型的3D游戏那个东西,这个比如说正常的显卡处理数据的情况下可能怎么的,就是比较慢是不是,那像什么这个AMD显卡就比较热是不是。
14:08
啊,你换一些其他的,比如说英伟达的可能就好很多吧,嗯,这是它的这个硬件的一个相关东西啊,我们作为了解知识就可以啊,不需要你说以后这个数据怎么计算的,怎么去传的过来了,不需要你知道,就需要有这个过程就行,咱们到最后是了解哪一块知识呢?咱们到最后是了解内存的这块知识。看到了吧,这是内存,为什么要了解内存就是我们创建很多变量啊,全局变量,静态变量,他们是怎么在内存中存储的,他们跟CPU计算这个关系,我们不需要懂,知道吧,只需要知道他们在内存中分布的这个内存中的这个。格式啊,就是我们这是我们需要了解知识点,那我们再回过来啊,我们还有下面知识点需要跟大家说一下。嗯,那好。
我来说两句