【Linux】入门篇-Linux的历史及发展历程(linux小型化成为安卓竟然有一段那么有趣的历史!!!)

目录

1.硬件的发展:1946年2月14日,人类历史上第一个计算机---埃尼阿克:为战争而生

1.1计算机的诞生-----为了战争(军工阶段)

研发的原因

时间就是胜利

冯·诺依曼

战争的作用

1.2 硅谷模式(时代背景)的了解----计算机从军工到民生(计算机硬件的普及)

2.计算机的商业化(商业阶段)

3.从硬件到操作系统

4.Linux的诞生------天才少年的探索

5.查看Linux开源源代码:www.kernel.org

6.进一步理解开源

7.Linux小型化成为安卓的前尘往事

8.企业应用现状

9.linux的发行版本

10.写在最后


谈论起源是一件颇具争议的事,誰才是门派正宗,正本清源,这些问题过于难缠,本篇文章的目的是通过对计算机的由来,硬件到软件等的大概发展历史中讲述linux的故事,给今后的linux学习或者讲解做一定的铺垫。(肚中有粮,前路不慌)那么接下来就让我们打开这神秘的面纱。 

1.硬件的发展:1946年2月14日,人类历史上第一个计算机---埃尼阿克:为战争而生

ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机

它是完全的电子计算机,能够重新编程,解决各种计算问题。它于1946年2月14日在美国宣告诞生。 承担开发任务的人员由科学家约翰·冯·诺依曼和“莫尔小组”的工程师埃克特、莫希利、戈尔斯坦以及华人科学家朱传榘组成。总工程师埃克特在当时年仅25岁。

            图1-1  第一台计算机   埃尼阿克
                         埃尼阿克

我们可以看到第一台计算机的体积是非常之庞大的,大量的物理线路,而且是外露的。这是因为受制于当时的半导体技术。

ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根水晶二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关,计算速度是每秒5000次加法或400次乘法,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。

1.1计算机的诞生-----为了战争(军工阶段)

那么是什么促进了计算机的诞生,又是为了什么理由促进了埃尼阿克的诞生呢?

那么我们阅读百度百科的这段背景:

研发的原因

研制电子计算机的想法产生于第二次世界大战进行期间。当时激战正酣,各国的武器装备还很差,占主要地位的战略武器就是飞机和大炮,因此研制和开发新型大炮和导弹就显得十分必要和迫切。为此美国陆军军械部在马里兰州的阿伯丁设立了“弹道研究实验室”。 [2]

美国军方要求该实验室每天为陆军炮弹部队提供6张射表以便对导弹的研制进行技术鉴定。事实上每张射表都要计算几百条弹道,而每条弹道的数学模型是一组非常复杂的非线性方程组。这些方程组是没有办法求出准确解的,因此只能用数值方法近似地进行计算。

时间就是胜利

不过即使用数值方法近似求解也不是一件容易的事!按当时的计算工具,实验室即使雇用200多名计算员加班加点工作也大约需要二个多月的时间才能算完一张射表。在“时间就是胜利”的战争年代,这么慢的速度怎么能行呢?恐怕还没等先进的武器研制出来,败局已定。

为了改变这种不利的状况,当时任职宾夕法尼亚大学莫尔电机工程学院的莫希利(John Mauchly)于 1942年提出了试制第一台电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。

美国军方得知这一设想,马上拨款大力支持,成立了一个以莫希利、埃克特(John Eckert)为首的研制小组开始研制工作、预算经费为15万美元,这在当时是一笔巨款。

冯·诺依曼

                   计算机之父

让研制工作十分幸运的是,当时任弹道研究所顾问、正在参加美国第一颗原子弹研制工作的数学家冯·诺依曼(von Neumann,1903-1957,美籍匈牙利人)带着原子弹研制(1944年)过程中遇到的大量计算问题,在研制过程中期加入了研制小组。原本的ENIAC存在两个问题,没有存储器且它用布线接板进行控制,甚至要搭接几天,计算速度也就被这一工作抵消了。

1945年,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer)在此过程中他对计算机的许多关键性问题的解决作出了重要贡献,从而保证了计算机的顺利问世。

虽然ENIAC体积庞大,耗电惊人,运算速度不过几千次,但它比当时已有的计算机要快1000倍,而且还有按事先编好的程序自动执行算术运算逻辑运算存储数据的功能。ENIAC宣告了一个新时代的开始。从此科学计算的大门也被打开了。

战争的作用

但为什么世界上第一台电子计算机要退至40年代中期才得以问世呢?这里面主要是实际需要是否迫切和资金是否到位的问题。实际需要当然一直都存在,谁不想拥有一种最先进的计算工具呢?但光是需求并不能决定一切。凡研制一种新工具,总是需要先期投入大量资金(研制ENIAC时,一开始就投资15万美元,但最后的总投资高达48万美元,这在40年代可是一笔巨款!)。能为一种未问世的工具大胆出钱的总是少数。

最后还是战争使计算机的诞生成为现实。事实上各种各样的社会需求中,战争期间的需求始终是最迫切的,因为事关生死存亡。政府和军方总是出手大方,将最新的科技成果应用到诸如战略和常规武器的研制工作上,以确保己方在军事上处于领先地位。

电子计算机正是在第二次世界大战弥漫的硝烟中开始研制的。如前面所述,当时为了给美国军械试验提供准确而及时的弹道火力表,迫切需要有一种高速的计算工具。因此在美国军方的大力支持下,世界上第一台通用计算机ENIAC于1942年开始研制。参加研制工作的是以宾夕法尼亚大学莫尔电机工程学院的莫西利和埃克特为首的研制小组。

重点来说:埃尼阿克的诞生最开始就是为了计算导弹的弹道,是为了军工而诞生。

1.2 硅谷模式(时代背景)的了解----计算机从军工到民生(计算机硬件的普及)

这是MBA百科的分享,大家可以了解

硅谷模式----MBA百科

下面我用自己的理解来给大家讲解

首先,科技的前沿的应用的聚集地和科技创新的诞生地并不是各个高校,而是以政府为导向的军工。比如计算机就是为了计算导弹的弹道轨迹诞生,比如微波炉最早也是红外线的光电信号加热后面小型化,比如网络,最开始也是美国70年代研发,后续普及,再比如化肥技术,化肥本身是工业品,合成氨,在生产的时候有工序就需要能够承受高压高温的材料,我国最开始的时候,没有能力能造化肥的重要因素就是我们国家没有办法创造这种材料,当我国可以制造原子弹的时候,我们的化肥也就可以制造了。所以计算机也是我们科技蓬勃发展的产物。

而科技创新的前提就是---------钱

政府将钱投入到军工(比较花钱)

政府收税得到钱,用于军工、民生建设等等

军工---》研发产品---》但是这些产品有些可以使用,有些不能使用(比如某些热武器),那么花钱造了,却用不了,就造成了一些钱财的损失。那么这些损失需要用其他方式来减少损失。

第二个由于军队的人才储备,也就是做研究,进行科技研发研究和科技创新研究的人员相对于高校、研究所等地方人员较少。

所以就把一些学术方面的研究和科技前沿的探索研究就对接给了某些高校。军方只拿结果。

那么对应的某些可以小型化可以民用化的技术,或者说在研发过程中公开的技术就会由我们的一些军工技术的负责人和我们的某些商业公司一起,将一项或者多项技术进行打包开发为产品(比如我们现在使用的计算机中包含的芯片、电容、光电信号、操作系统、应用等等的各种软硬件技术,打包和我们的inter 苹果或者其他计算机类商业公司进行整合),然后出售给我们的公司或者个人。

那么政府出售技术给商业公司创造出商业产品,那么这些商业公司可以盈利的同时也孵化出更多的公司。那么个人和公司就可以上税,政府也就可以减少损失。

上述的商业公司和个人在刚启动时比较缺钱,这就诞生了金融公司比如硅谷、华尔街等。

整个研发流程,美国等将这个模式称为硅谷模式

那么计算机就是在硅谷模式的运行下实现了普及和民用化,逐渐成为我们日常生活不可缺少的工具。

         最开始的计算机:体积大、能耗高(非常耗电)、运行速度相对还是比较慢、操作门槛还是比较高(最先使用计算机的是科学家们),那么计算机小型化就是当时的目标和愿望,当时制约计算机体积的重要技术就是半导体技术(芯片),这里还有一个摩尔定律

“摩尔定律”是集成电路行业所遵循的规律,是指价格不变时,集成电路上可容纳的晶体管数目,每隔18~24个月便会增加一倍,器件性能亦提升一倍。摩尔定律在计算机的发展史中贯穿始终

计算机小型化的背后就是芯片的小型化。在摩尔定律的指导下,从194X年开始后的一二十年间,随之时间的发展,计算机体积变小、效率变高、能耗和成本降低。

最后政府经历这么漫长的过程实现了计算机的小型化,还是为了减少损失,那么就想将计算机的商业化了。

2.计算机的商业化(商业阶段)

政府军工+IBM(也被称为蓝色巨人)---->开始构建出企业级计算机(还是比较贵的价格)

原因:计算机体积依旧很大,造价成本依旧很高,目标客户是企业或政府 金融机构股市,银行

上世纪六七十年代{施乐,苹果等公司将计算机进一步小型化 开始了个人pc的开发。}

知乎文章----麦金塔诞生记

第一款比较不错的   麦金塔   

计算机操作不方便,软件资源也非常非常少,后来苹果就开始做自己的操作系统(前面还有启发乔布斯的系统大家可以看一下),微软

等公司也开始自己操作系统的研发,目的呢就是为了对抗苹果,微软选择和IBM合作,但是IBM最开始是为了给政府和公司做企业级计算机的,即使当时的苹果公司的电脑的出售很好,IBM依旧不看好计算机的民用化市场,因为价格太贵,认为很多人买不起,所以后续和微软分手。微软又重新和inter(英特尔做芯片合作,自此 软件+硬件结合, 就 孵化出了各种各样的电脑厂商,如联想、戴尔、华硕基本搭载windows,芯片搭载x86,x64.

那么时代背景就来到了:

①苹果公司有自己的软硬件和操作系统,诞生了苹果的pc电脑.

②windows操作系统+X86孵化出的各种电脑。

那么在计算机小型化到计算机商业化的过程中,我们的操作系统和网络就已经开始萌芽,今天我们就不谈及网络过多。主要原因是计算机不好操作,为了让我们的计算机更易于操作,就有人设计制作了操作我们计算机的软件----操作系统

3.从硬件到操作系统

对于人们来说,特别是大多数的我们,直接上手操作我们的计算机是比较困难的,为了更好的操作我们的计算机,人们就研发了控制了计算机的软件-----操作系统。最早期的主流操作系统-----Unix操作系统。那么在计算机出现发展的同时,上世纪五六十年代,unix系统就在被一批技术人员研究,目的是:能在计算机上运行一款软件,可以帮用户自动化的完成一些操作。比如说:打印东西到屏幕硬件上。计算机的本质是:用户将数据输入给计算机,计算机将结果展示给用户,所以任何计算机都得有输入和输出,那么早期的计算机只有硬件没有软件,所有的输入输出都是靠开关按键。

就像《三体》中叶文洁操作的电脑

直接使用开关过于麻烦,而且机器容易损坏,维修成本也会增加,人们就像得到这样一个东西来帮助我们完成,计算机用户需要的计算数据,至于如何输入输出并不是用户所要关心的东西。有没有一款软件可以将软件资源管理起来------操作系统就诞生(此时时间大概为上世纪五六十年代,没有我们的C语言)。后来就有了一些打孔的纸带编程,《三体》中叶文洁给三体世界传输地球坐标手里拿着的就是打孔的二进制序列。

但是效率太低,诞生了汇编语言。

汇编语言百度百科

那么我们的第一款操作系统就是使用我们的汇编语言编写。

肯尼斯·蓝·汤普森于1969年编写了第一个版本的Unix操作系统,这是第一个可移植操作系统,它为计算领域的网络范式奠定了基础,当时使用的是运行在GECOS上的交叉汇编程序,Unix为用户提供交互式远程终端计算和共享文件系统,肯尼斯·蓝·汤普森还基于BCPL创建了一种称为B的解释性语言,用它来重新实现Unix的非内核部分,他与合作者在1973年用C语言重写了Unix的大部分,这使得进一步的开发和移植到其他平台变得更加容易,Unix后来被设计成可以在从大型机到个人电脑的设备上运行,在学术环境和互联网服务器上广泛使用

肯尼斯·蓝·汤普森

操作系统跑了一段时间过后,诞生了C语言:

丹尼斯·麦卡利斯泰尔·里奇C语言Unix操作系统Plan 9的创建者之一。

人物介绍

而两人又是好友,所以用C语言重新编写了unix,诞生了C语言版本的unnix操作系统。

目前:企业级计算机+C语言Unix操作系统= 慢慢变成了我们的依靠解决方案。

4.Linux的诞生------天才少年的探索

那么由于计算机这种强大的计算能力,不仅仅可以用到我们日常生活中金融计算,数值计算等。更多的计算机可以给科研提供支持,其算力比较强,所以计算机继续科研领域。那么像麻省理工等知名高校就会有很多人进行这方面的资助,设备的采购,不知名的高校也会由于政府的补贴在外采购设备。特别的,我们今天介绍内容要提到的一个大学-----位于芬兰的赫尔辛基大学

赫尔辛基大学百度百科

赫尔辛基大学当时拥有不错的计算机资源,这些计算机都搭载了Unix操作系统。学生可以接触到这些计算机,然后有这样一位学生在使用计算机的时候就觉得这些操作系统和各种各样的计算机资源都要收钱,所以这位学生回到宿舍就着手自己写一款操作系统。写完后将第一款操作系统命名为:

                         Linux     

含义:Linux is not Unix

并将其开源(人们可以用较少的成本获得这个操作系统(几乎不花钱))。这位少年的名字是:林纳斯·本纳第克特·托瓦兹

人物百度百科介绍

正是因为Linux是开源的,才有了我们现在的故事以及未来将要发生的故事。

随着时间的推演,Linux已经由原先的一万多行代码增长到了我们现在的五千万到七千万行代码,称为主流的操作系统之一,包括我们的安卓等内核的底层操作系统也是Linux.也是因为开源,林纳斯·本纳第克特·托瓦兹实际上是不受乔布斯和比尔盖茨的喜欢的。

所以:Linux是用C语言写的,一款源代码宫濑的操作系统软件(开机启动时还是会使用到少量的汇编语言)

5.查看Linux开源源代码:www.kernel.org

 这些就是Linux的源代码,都很大。

最早期的源代码大家可以到gitee上搜索:Linux 0.11源代码

只有1.1-1.2万行。

6.进一步理解开源

可能很多伙伴初学就有疑问为什么要将操作系统的源代码公开,发布自己专利不是更好吗?

还有为什么会有那么多的人自愿的来维护这个操作系统,没有人支付报酬?

首先我们理解一下第三个问题,为什么会有人无偿参与

在我的理解中,参与维护Linux系统的都是一些工程师或者顶级黑客,那么对于这些人来说,经济已经不是他们所追求的东西了,至少不会为了养活自己活着家庭奔波,其次,很多顶级的工程师和黑客追求的东西可能是更深远的东西,比如改变世界,而Linux确实具备这样的条件,第三点,从人类志愿精神来理解。

开源的好处在哪里?开源好还是闭源好?

首先判断好不好的标准应该是:代码稳定(bug少),效率高、安全性高

①从开源来说:开源源代码公开的时候,将会有很多人一直在看,也有很多人在写,很多人再用,那么就会很容易发现代码中的问题,这就是开源的特点(参与人数众多(有人写、有人看、有人用、有人发现问题、有人解决问题、更有人会提出更好的代码或者问题解决方案)这个过程完全自动),所以最终,代码放在开源地方,有不足等可以很快搞定。

那么对于闭源来说,操作系统是工业排名第一的难写,设计到各种硬件各种算法。写一套操作系统可能需要像阿里这样的公司万人之力,所以参与人数有限,因为闭门造车,windows是因为人用得多,所以问题也会暴露但是不完全,就像我们电脑蓝屏黑屏我们会去发一篇论坛,显然是不会的,所以问题修改并不完全。

②就问题解决层面来说,当操作系统出现问题,那么我们的研发公司肯定也会有两三个人一起维护这个板块,那么就会问责到这几个人员,那么由于这个东西是和奖金或者绩效挂钩,那么最终,大家就会触发这种思想:我自己写的代码我还能不清楚吗,肯定是你的问题,问题重心就从:如何解决问题到是谁的问题,解决问题的效率就低下了。

而开源的项目不和利益挂钩,大家会争先恐后的去发现这个开源代码的问题。所以开源项目的开发效率很高(热度比较高的情况下)

③安全性方面:由于代码公开就意味着逻辑公开了,那么就不会存在非法盗用问题。

所以这就是为什么企业选择Linux作为开发后台:

免费、高效、稳定、安全这些都是开源带来的。

7.Linux小型化成为安卓的前尘往事

开源也是一种商业手段

大概在08年前,手机只有两种:苹果和其他,只有苹果做出相对只能的手机,从苹果3开始只能手机大量发展。

由于苹果的这种发展,一些公司开始汲汲自危,其中就有我们的主角:谷歌

谷歌 最开始的危机感来自于windows,因为早期我们购买电脑走知道,windows系统内置了一款浏览器也就是搜索引擎IE浏览器

相比起关心使用什么搜索来说,人们更喜欢操作系统,所以在人们使用微软的操作系统的时候就直接使用我们的ie浏览器就行搜索。然后操作系统不允许安装其他浏览器,很多浏览器厂商就倒闭了,百度、谷歌等公司就瑟瑟发抖了。所以,就有很多人开始对抗,360、搜狗等等,所以平台性质的操做系统级别的软件一但大面积兴起就会导致我们上次软件发生很大的改变,那么同类型的软件将会将性命交给了别人。那么回过头来,苹果公司的手机的用户基数分布之广,而且苹果拥有自己的系统,如果苹果也要做自己的搜索引擎,那么必然导致其他公司将消失在时代的浪潮中。移动端谷歌就会失去存在价值。那么为了防止这种情况,谷歌在12年左右就在美国收购了一家做Linux小型化的公司。

linux小型化:将linux的源代码内核编译成二进制文件内置于手机中

然后立马将这个小的操作系统开源了,将这个操作系统命名为安卓。

然后过年的互联网公司就开始狂热做我们的国产手机了,早期的华为、小米、魅族。因为我们国家从06/07出现很多的山寨智能机,说明我国具有硬件能力,接触操作系统后就可以发展手机产业了。谷歌也在移动端有了话语权。

8.企业应用现状

  • Linux在服务器领域的发展 随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占 据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、 金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力 度,Linux服务器产品一定能够冲击更大的服务器市场。 据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛 起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。
  • Linux在桌面领域的发展 近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗 Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得 到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积 累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有一定 的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。
  • Linux在移动嵌入式领域的发展 Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目 前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的 Android操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系 统,据2015年权威部门最新统计,Android操作系统的全球市场份额已达84.6%。 此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的操作系 统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在 逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。
  • Linux在云计算/大数据领域的发展 互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源 软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云 计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

未来还会有无数种应用场景。

9.linux的发行版本

1.商业化版本:ubuntu,centos/redhat.kail,红旗等

满足不同场景的使用

2.技术发行版就是1.X   2.X   3.X   4.X

商业化版本可能用的是不同版本的内核

关于我们学习环境的安装,下一篇文章发布大家可以点击主页看一下

关于liunx技术发行版,编号的含义:

修正次数达到一定程度会修改我们的次版本号

次版本号修改到一定程度会修改我们的主版本号

次版本号是偶数表示是稳定版本。次版本号是偶数表示是发行版本。

发行版本集合:

  • Debian
  • Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用 户,而是适合系统管理员和高级用户。
  • Ubuntu
  • Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应 用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不 释手的一款操作系统。 
  • 红帽企业级Linux 这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包 括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管 理员进行培训和认证。
  • CentOS
  • CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版 完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红 帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业 级Linux如出一辙。 CentOS使用YUM来管理软件包。
  • Fedora
  • 小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公 司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好 的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。
  • Kali Linux
  • Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有 Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论 坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马 可以使用。Kali使用APT来管理软件包。 毫无疑问,Kali Linux是一款渗透测试工具。

10.写在最后

本篇文章主要目的是为了大家对Linux有一个印象和了解,也了解一下计算机相关知识,为后面的讲解做铺垫,很多地方不准确或者不完备那么大家也可以在评论区留言我后续更改。下篇文章会教大家安装Linux的环境。创作不易,希望得到大家的支持

  • 46
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMake是一种跨平台的开源构建工具,它可以自动生成与操作系统和编译器兼容的构建脚本,使项目的构建更加简单和灵活。本文将针对Linux系统进行CMake入门教程。 首先,你需要在Linux系统上安装CMake。你可以通过包管理工具,如apt或yum,在终端中运行相应的安装命令来安装CMake。 安装完成后,你可以进入你的项目目录,创建一个CMakeLists.txt文件来配置你的项目。CMakeLists.txt是CMake的配置文件,它定义了项目的目标、依赖关系和编译选项等。 打开一个文本编辑器,在CMakeLists.txt中添加以下内容: ``` cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 11) add_executable(MyExecutable main.cpp) ``` 在这个配置中,我们首先指定了CMake的最低版本要求,并命名了我们的项目。接下来,我们设置了C++的标准为C++11。然后,我们使用add_executable命令添加了一个可执行文件目标,并指定其源文件为main.cpp。 保存并关闭CMakeLists.txt文件。 然后,你需要在终端中进入你的项目目录,并创建一个build目录用于构建过程。 ``` mkdir build cd build ``` 在build目录中,你可以运行cmake命令来配置你的项目。 ``` cmake .. ``` 这将根据CMakeLists.txt文件生成构建脚本。如果你在CMakeLists.txt中没有错误,你将看到一些输出信息,并且build目录中将生成构建脚本。 最后,你可以运行make命令来编译你的项目。 ``` make ``` 这将根据生成的构建脚本编译你的项目。如果你的项目没有编译错误,你将在build目录中得到一个可执行文件。 至此,你已经成功入门了CMake在Linux系统上的使用。你可以根据自己的需要修改CMakeLists.txt来添加更多的目标、库和编译选项等。 总结起来,CMake是一个功能强大且易于使用的构建工具,它可以帮助你更好地管理和构建你的项目。希望这个教程对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值