我们先来看一下在 qt 六里面在 seemic 文件里面添加模块的方法,我给大家保证,就是说我们看完这个视频之后, 我们以添加数据库模块为例,只要你看完了,你是可以举一反三,出类旁通添加,其他模块都是类似的。 我们看到这里,首先我运行的这个文件在这里报错,显示我没有数据库这个模块或者文件,那这个时候就是说我们需要在 seemic 里面去进行添加,因为以前的 qt 五是在 qmic 里面添加的,那这个时候 比较新,我们可以点击这里帮助我们找到我们的 q 妹,找到我们的 database 这个文件双击,也就是说我们在 help 文档里面可以看到 在这个文档里面呢,他告诉我们了头文件是这个,那么 c mac 就说我们要添加这两个语句, q mac 是以前的,我们把这两个语句复制一下, 那么放置的位置也是有一定的讲究的,如果你没放好,可能也会出现错误的。能回到这里, 我们找到 c mac 这文件,我们来看,首先是 fund package, 我们放到这里,我们把 fund package 放这里,然后呢我们得复制把后面这里 target link libraries 放到这里的后面我们可以看到我们试着运行一下,这个时候我们会发现仍然报错,报错,为什么呢?因为在这里我们要进行改一下这里的 target, target 对应的 是我们的文件的名字,比如说我这个项目的名字是叫这个,所以我们要把它更正过来,我们复制一下粘贴,这个时候我们重新运行一下,我们看一下他是否报错呢?这个时候是不是成功运行了?这就说明 我的模块已经添加成功了。那如果说我们下次要添加其他模块的话,是不是类似的, 你可以直接点击帮助在这里面查找模块,比如说叉叉目标。 假设啊,这么快,我们在这里面去找找他的属性,这里是不是也有链接的?就是说你要自己点进去,然后依次去查找目录就可以找到的。
粉丝1969获赞3.4万

第二章第四节使用 c make make 构建系统到目前为止,我们所有的例子使用的都是 q make, 那后面的例子呢?也将会使用 q make, 只有这一节的例子,我们会使用 see make 构建系统。 到底什么是 c mac 啊? c mac 是一个功能强大的跨平台构建工具,它通过与平台、与编细无关的配置文件,控制软件的构建过程,它会生成 macfi 文件或是 ide 的项目。那如果你经常会做一些 开源软件相关的开发,那么对这个软件应该是不陌生的。我们经常会用 c mac 来构建相应的系统,因为他只提供原文件,那你要在不同的平台上,不同的你使用不同的编辑器,那你就用这个描述好了,然后其实配置文件就对项目的描述,通过和描 处理,精心配置,就生成你本机环境的这样的一个项目,生成一个 id 的项目,那 q t 六本身它其实就是用 c m a q 构建的。 好,我们来看一下这节课我们的任务也就是换一种方式去实现。我们啊在前面章节里面完成过,完成过的任务,那我们要做的其实挺简单的啊,就是选择的时候呢,在选择到 build system 的时候,我们这里面选择 seemic, 而不是以前的 q maker。 当我们生成一个工程的时候,然后这里就不是点 p r o 文件了,而是一个 t x t 文件,不管你的项目名称叫什么,这个文件都是这个啊,叫独角 c max list, 点 t x t 文件。然后我们可以大致的看一下这个文件里面内容啊,基本都能看懂,像这个 mini 的 record 就是最低的 版本要求呗。然后这个是啊,我们项目的名称,项目的版本,对吧?语言是 c 加加,这是关于我们工程,然后这个就不是我们前面讲的吗? uic m o c r c c 三个 compiler, 让它自动开启,对吧? 然后都是 c 加加的版本,然后是否是要支持,对吧?都是这个。那重要的其实是 find the package, 还有一个叫 texture link library, 但这两项其实你不需要太关心,当你需要导入某一个模块的时候,其实你在办公室文档里面你都能到搜的到啊,相应的这种 这种字段啊,这种描述,你直接复制粘贴进来就好了,其他的像资源文件,对吧?这一看就这样的,都是我们相应的 cpp 啊啊,点 h 啊,点 ui 文件,那这些基本上都 会自动去加载进去的啊,不需要我们太多的关心。那书上呢,也有比较详细的介绍,那这里面我们就不过多介绍了,我们直接来 来上项目。那我们直接来把我们前面做过的例子重新来做一遍。那这一次呢?我们不会全部把代码重新敲一遍啊,我们会把前面用到的 c 加加文件啊,点 h 文件,包括 u i 文件啊,铝 south 文件,我们直接拿过来拷贝进来用就好了,其实都是一样的,只是工程描述不同嘛,对吧?用到的这个语法呀, a p r 其实都是一样的。 打开 q t creator, 新建一个项目,选择 q t v g 的 vacation。 那这里注意,以前是中文路径,我这里改成了英文路径,因为 simic 它是不支持中文的啊,不支持中文路径,二杠四,二杠四还是一样啊, 下一步其他都一样,这个地方选择 c mac, 然后下一步同样选择 qdalog, 我们还是要生成一个 ui 文件, 然后下一步选择开发套件,下一步 finish。 整个流程其实和以前是差不多的,只是我们选择的时候注意路径,不要有中文。然后呢,我们啊选择 say make 作为 build system, 勾结完以后,我们就会看见这里有 say make list, 点点 t x t, 你打开呢,就可以看见一些配置了啊,包括我们这里面有哪些文件, 那我们最关心的可能是加载了哪些模块,他这里面有一个 link library, 但是不用担心啊,你只要去在帮助里面去搜索任何一个模块,他都会在最上面的位置就有,你直接贴过来 就好了,像这里也是好,那么我们现在如果自己去写的话,就会很慢,对吧?其实做的事情呢,就和前面也差不多。还有一点,你会发现这个地方啊, 它的位置发生了变化,也就是 seemic, 你可以去选择在里面去看一看啊,相关的一些目录的东西,那总之它的 深层的目录那可能也和以前和 q max 相比也会有些变化,那这也很正常。然后你可以把先把默认的跑起来确认啊,没有问题以后我们再去进行一个替换,我们把我们前面 学过的内容做好的文件给他考进来。哎,是不是抛起来是差不多的,对吧,我们在这里面编辑就好了。 ok, 我们再看一下他的具体的位置啊,我们打开相应的目录啊,在这里我们会有一个深层的文件夹 啊,在这个文件夹下面呢,我们去找。哎,好像没有啊,以前就是在这个目录下面的,就会有一个 ui 的投文件,那它在哪里呢?它实际上应该是在这里。 oto 啊, autogenerate 吗?这是一个缩写,就是说我们自动生成的都在这里。好,这里面有个 include a ui 下杠啊, dialog 它是放在这里了,那包括其他的文件,你也可以去看一看,这是 mark 的,对吧?相关的,那我们后面呢,还会有资源文件。 好,那么我们就先把我们前面的课程我看看啊,应该是二杠二,对吧?这里面有 ui 文件,有点去文件,有 cpb 文件,包括有图片啊,有资源文件,其他的都不用改吧,然后把这些都考下来。 control c, 然后呢?放这来覆盖,好替换,但如果仅仅是这样的话,我们重新编译一下,我们试一下,看啊,看行不行。 这里有一个问题,就编辑器可能不知道文件被修改了,那他你像你去打开这个 ui 文件,他是没有没有小星星的,上面就是没有修改这个文件,那 cmak 就不会去重新去用 uic, 去去去生成啊,新的社交加文件,对吧?所以你这样跑起来的效果是什么呢? 我们试一下,哎,发现没有变化啊,没有变化,那我们就给他改一改呗,对吧?我们随便改一改,像这里面我们就可以给他写成啊, c mac 版本,那包 包括我们如果想换,咱们选中这个地方,我们选搜索 title, 那就是修改它的名称,对吧?左上角的名称,这个呢,我们也就是 famic 构建。 好,那我们现在在运行,现在他就知道了啊,这个是修改过的,我需要重新去编译他,那么现在看有了吧?好,他发现不起作用,这不起作用又是为什么呢? 这还是一样啊,还是相应的文件,我们可能就他不知道变化了,对吧?我们把它稍微摁一下,那里有个小心心以后,然后我们再保存,我们再或者是投文件也一样吧。啊,这样一下,因为我们调用这个 mark 的时候, m o c, 这个,这个 compiler 的时候,实际上他看中的是这个投文件,像这些红啊什么的,对吧?像这些东西。好,那我们再再编译 好,我们现在再试一下下滑线,有了鞋体,他加粗变颜色,清空抓是不是都可以了?点确定 ok, 但现在其实还是有问题,我们现在图标没有啊,我们打开这里,在下面给他加上,其实我们考过来了,叫绿色老师,点 q r c 对吧?点 q r c 他应该找得到的他, 然后你点确定的,点保存的时候, ctrl s 的时候,它会自动就给你开始构建了。那看把它也放进来了啊, icon 呢?也在里面了。好,那现在我们再跑起来看一下,是不是能看见图标,因为我们以前的原码里面其实都是已经配好了的。好,你看这些 图标是不是也都有了,所以差别不大,对吧?我们只要注意一个中文目录的问题,然后呢,如果你是复制粘贴的方式的时候,其实这个和 q maker 啊,和 q maker, c maker 也没有太大的关系啊。 那我们要考进来东西的时候,因为你不是一步步生成的,他不会自动放进去,放到 cmak 里面去啊,放到这个 tik 文件里面,那你就要自己首通加一下, ok。

哈喽,小伙伴们大家好,我是大嘟嘟,我之前有个视频聊过怎么使用 vs 扣的搭建一个私家家的极简便宜环境,他非常适合小白用来入门私家家的时候使用。 那今天我们来聊一聊怎么使用 vs co 的加 c mac 去创建一个更加通用的变异环境,这个环境可以很轻松的支持多几目录,新增依赖库,甚至可以跨平台的使用。那有的小伙伴可能会想啊, c mac 是怎么实现的这些功能呢? 那下面我们就一步一步的去了解这个问题。首先我们来看一看变异器是怎么工作的。以我们之前安装的 gcc 变异器为例, 当项目里只有一个 cpp 文件的时候, vs 扣子可以帮我们自动编写这个编辑器的命令,我们直接使用快捷键就能编辑这个场所。但如果项目里有多个 cpp 文件的时候,我们就需要手动的去编写编辑器的命令了。如果我们现在有这三个文件,那这个就是我们所需要 写的编辑器的命令。这么简单的文件都需要写这么长的命令,那可以预想到以后如果我们的文件越来越多,项目越来越复杂,那我们很难正确的去写出这个命令。为了解决这个问题,自动化构建的工具 mix 就诞生了啊,没错啊,它是 mix, 不是 c make。 有了 mac 工具,我们就不需要每次编辑的时候都写很多的编辑参数,而是根据 make 的语法,把编辑的过程和依赖的条件都写到一个 make file 文件里面。每次编辑的时候,我们只需要执行一个 make 命令就可以完成编辑的过程了。那一句话来总结, mac 实现了变异的自动化,我们不需要去写变异器的变异命令了,但是呢,那我们需要去写 make file, 那能不能更简单一点呢? make 提高了每次的变异效率,但是我们要去写很复杂的 make file 文件。这个时候就有人想了,既然变异能自动化,那能不能把生成 mate fire 文件的过程也自动化呢?哎,真的 可以,这是我们今天要用的这个 c mac。 一句话来总结呢, c mac 实现了生成 mac fil 的自动化,是不是感觉很绕啊?那没关系啊,我们来看一张图,把整个过程串联一下。 首先我们会根据原文件去编写 c max 的配置文件,这也是我们唯一要做的事。然后呢, c max 就会根据这个配置文件去生成 maxel, 最后 make 工具去根据 macel 调用变异器,变异器,最后来生成可制性文件,这就是我们整个的变异过程。 是不是这样一梳理就清晰很多了,那其实最终干活的呢?还是变异器,只不过我们把调用变异器的过程给自动化了。 对 cmea 我们有了简单的了解,下面我们来看一看怎么安装 samec, 并且怎么使用 cmacle 来变异我们的 cc 加程序。

上一个视频我们了解了 cma 的工作流程,这个视频我们来安装 cma, 可并且使用它来编辑一个简单的 cc 加程序。 要使用 cmac, 首先我们应该保证已经安装了变异器,比如 gcc, 他能够正常的变异 ca 家的成色。第二个,我们要在 vs 扣子上安装 c make 和 c make too 两个插件,点击左侧的扩展,我们输入 c make, 可以看到第一个就是 c mac, 第二个是 c mac tours, 这两个插件我们都要安装,并且安装后要重启 vs code, 因为我已经安装过了,我这就不再演示了。第三步,下载 c mac, 因为我用的是 windows 系统,下面这个就是 windows 系统的下载链接, 因为这是一个安装包,我们只需要点击下一步就可以了。但是安装的过程中,这一步需要注意一下,我们需要选择把这个 c max 加入到环境变量里,这样我们就不用去手动的加环境变量了。安装完 完成之后,我们可以使用这个命令去测试一下, 能够正常显示版本号,代表我们已经安装成功了。 安装成功之后,我们用一个简单的 c 加加程序去测试一下 c 密克的变异功能,这个目录下只有一个 c p p 软件,我们使用 vs code 的快捷键, ctrl 加 c 加 p, 调出命令功能,然后输入 c ming, 我们点击这个 quick start, 然后输入一个项目的名称,这个名称我们可以随便起,他就是最后我们输出 exe 的那个名称。 这里让我们选择我们要编辑出一个赖布库,还是编辑出一个可执行程序,我们这选择可执行程序, 可以看到在这个文件夹下面生成了一个 c make listy sdear, txt 文件和一个 bu 的文件夹。这个时候我们就可以变异程序了,我们来看看几个常用的快捷键。变异是 f 七,调试是 ctrl 加 f 五 f 七可以看到变异成功了,再来调试一下, 说出了哈罗 c make, 证明我们的程序已经例行成功了。那这就是 c make 最简单的用法。下一个视频呢?我们来聊一聊怎么使用 c mac 去配置一个复杂的 c 加加工程。

上一个视频我们了解了怎么使用 c mac 去构建一个单文件的 c 加加工程,但实际开发中肯定不会只有一个文件,这次我们就来看一看更复杂的情况。 首先呢,我们要了解一下 c mac 的必要组成部分,这是我们使用 c mac tours 正常的配置文件,其实这里只需要三行就可以正常编映了,我们暂时只保留必要的部分。 第一行呢,规定了 c make 的版本不能低于三点零点零,这也是为了避免一些机器的 c make 版本太低,导致一些 c make 的语法不兼容的问题。第二行一共有两个信息,第一个信息是他定义了我们软件工程的名称。 第二个信息是他定义了我们软件工程的版本,我们可以使用这个版本来标记我们的开发过程。第三行表示我们要生成一个可执行文件,他的名称是泰斯特 c make, 然后他包含的原文件 慢点 cpp, 从这里我们就能看得到,如果我们以后要包含其他的原文件呢?我们需要在慢点 cpp 后面去加其他原文件的名称。我们先来变异和运行一下元代码, 可以看到程序已经正常执行了,证明我们的 cm 和配置文件没有问题。我们现在只有一个慢点 cpp 文件,因为内容非常简单,所以现在把功能和慢函数放在了一起。不过随着工程越来越大,我们会把不同功能的代码拆分到不同的文件里。现在我们就把 mac guar 这个函数拆分出来看一下, 可以看到变 编辑器提示我们找不到投文件,其实是因为工程并不知道我们投文件的路径在哪里,那我们只要告诉他我们投文件的路径就好了。 这里呢,我们向泰斯的 c 面和这个工程 添加了一个投文件路径,这个路径就是我们工程原代码的位置,下面我们再来看一下,那这里编辑期说找不到我们的函数,这是为什么呢?因为我们新加了原文件,但是呢 cmax 并不知道,所以编辑的时候并没有把它包含进来。 现在呢,我们就告诉 cmic, 我们增加一个原文件变异一下试试, ok, 可以看到变异通过了也能够正常执行。这就是 cmic 一个比较重要的点,我们需要编辑的原文件都要加到 cma 的配置文件里来。软件开发呢,有一个很重要的原则,就是不要重复造轮子,各种开关、社区设计模式,软件模块化编程都是在实践这个原则。所以开发过程中我们会遇到很多已经存在的苦, 或者我们的一些代码可以被其他的工程服用,这个时候我们就会把一部分代码编辑成库。那下面我们还是以这个 mac 怪尔为例,去看一看怎么去编辑出一个库,并把它链接到我们的工程里面。首先我们为库创建了一个目录,并且把用到的投文件和原文件都放到目录里来,那既然我们要把它编辑成库,那肯定要用到 cma 的配置文件。 刚才我们看到一个工程的 c 内科文件至少要包含三行才能正常变异,但是一个库呢,他只需要一行,下面我们要在主程序变异的时候也把这个库给变异了, 然后把库链接到我们程序里来, 最后看看我们刚才包含的投缘键目录,现在是不是已经发生变化呀?那我们再来把它修改一下, 这样呢,我们就完成了一个酷的变异和链接的过程。那我们今天的视频也就到这里了,如果觉得视频有用请点赞关注,也可以在留言区跟我一起讨论,我是大嘟嘟,我们下次再见。

下面我们开始来讲第一个章节啊,第一个章节呢,我们当做设计这个章节的时候,主要考虑到,呃,我们尽量不要去关注过多的 cp 特性, 先得把它用起来,就用到你的项目当中,并且在这一章节学习完之后,我们就可以实际在项目当中应用起来,因为涉及到应用的话,我们肯定要除了编执行程序之外,还要编动态链接库,所以我们就设计了这样的一个章节内容啊,我们看一下几个章节啊, 我们给他设计了四节课,第一个就是基本概念部分,基本概念这里面其实我们主要讲一下这个 cmak 原理,包括就是 cmaa 在他其中啊, 就是我们为什么选用新麦克,当然我们在这里也可以选用其他的工具,选他肯定是有他的优势在里面,为什么选他?然后还有一个就是知道一下他的工作原理, 为什么要知道他工作原理,其实后面的很多特性的去学习,包括你去查手册,在理解了他的原理的情况下,其实是更容易学习。 第二部分我们讲的是它的安装,安装的话我们分别是针对呃三个平台版本啊,尼纳克斯和这个麦克 os 和 windows 啊,这也是基本上最主流的几个开发平台啊。其实在这个交叉编译部分,交叉编译部分我们 不需要特别的安装 rm 版或者是安卓版,因为它是一个构建工具,所以说可以在 windows 当用它来构建 ivos 的应用,构建这个 m 的应用也可以构作安卓的应用。所以这时候我们只需要知道的一个工作环境,因为现在工作环境其实主流的还是在这个 windows 和 michaels windows 为主,但是呢,在 linux 当中呢,它的方便是很多的,第三方的应用工具很方便,就是你在 cmit 当中再去依赖第三方工具的时候,相对更容易点,所以说我们这个平台也是这一个主流。 并且呢,其实我们在学了 c mac 之后,我们相当于呃在 next 平台,我们就可以完全只用 c mac 来构建项目了啊。像前面我有一门课程是讲 mac fire 的 麦克法尔奇,很多公司在用啊,但是我们现在看还有很多公司,大量公司在用 cmek 在做,因为在期间呢,我们给大概可能有上百家企业做培训和咨询,这是一些大的企业,他们其实呃部分项目在用麦克法尔, 呃更多的项目在用 c mac, 所以 c mac 基本上满足了,跨平台就是尼莱克斯开发也完全满足啊。所以我们在这边会讲解这个安装过程, 让大家不要卡在第一步就安装,就安装不上去好,然后后面我们就开始做第一个视力了,来写这样一段代码,代码是越精简越好,我们尽量少的代码就把这个项目构建完成好。写完之后,下面我们会给大家去看一下,我们会去 啊编译动态库和静态库啊,两块,就动态库和静态库在在我们 c make 当中他是有区别的,而且可以通过传递不同的 红参数来去改变构建。因为我们在项目当中,我们可能有时候需要变静态库,有时候需要变这种动态库,有这样的一种需求,所以说我们在 c 面可以很好地满足了这样的一个 一种要求。好,那最后就是我们,呃整个编译链接啊,我们给大家都给他大家做了演示,学 玩第一个这个章节,第一个章,那我们基本上就能够先把项目用起来啊,然后碰到一些情况,我们再去查一些手册啊,能够实现一个简单的项目,但复杂项目可能我们还需要去学更多 啊,那本章节呢,我们提供的是首先第一个,这个我们课程当中讲到的这些项目和对应的思维导图,就是原理的这些文档啊,我们在本章节的资料当中都有提供原码,也有提供原码,我们这里面提供的就是有 酷的版本,我们这里面啊后面的原码注一下,这边有编号的幺零二啊,我们在第一章节是以这个幺开头的啊,幺零二,还有我们看一下,就是幺零幺是第一个版本啊,就是方便大家后面去找,然后对应的 cmake 本身 的这个工具的安装呢,我们也在课件当中提供的圆盘,大家可以去直接下载,或者就是到 cma 可点 vrg 点 cn 这样的网站去直接下载。好那本章节,呃,我们建议大家快速学习,先把 c mac 用起来。


道何从剑所指?欢迎大家来到指尖问道。本节课程我们将一起来学习 seemic, 通过本节课程的学习,我们将会彻底了解 seemic 到底是什么,那它不是什么? 为什么要讨论这个问题呢?是因为我们在网上或者是在我们的这个日常交流中,经常听到这个 c make make, 还有 make, feel, n make 等等这样一系列的关键名词,那这些名词呢?他们都有一个 make, 就很容易导致我们进行哄笑。 那通过本节的一个学习,我们将会彻底了解到那到底 c mac 是什么?它和其他的这些关键的这些名词有什么差异。好,我们一起来学习一下。首先在了解 c mac 之前, 我们需要先学习一下各个操作系统中对于这个 c 语言的编译是怎么样的一个过程,都用的是哪些工具?首先我们看一下这个 windows 操作系统,在 windows 操作系统下, 因为提供了这个什么 viro studio 这个集成开发环境,那我们所有的这个开发工作可能都直接在这个 viro studio 里面一一次性搞定了。 但是我们可能忽略了他的一些细节,比如我们编辑这个语言文件的时候要用到这个文本编辑器。 在这个 windows 环境下呢,我们一般就使用这个 viro studio 自带的这个文本编编辑器,但除了 windows 自带的这个文本编辑器以外,我们也可以用什么 note, 加加等等其他的文本编辑器工具来编辑我们的原代码。那编辑后的这个 个元代码,我们一般的话都会加入到我们的这个什么 viro studio 的集成开发环境中,然后进行编译。编译的过程中的话,我们主要用的工具链是微软提供的这个 msvc 的一个工具链,它里面包含了编译器以及 什么汇编器以及链接器等等。但是因为这一些系列的工作呢,都在这个 viro studio 里面完全集成化了,所以我们就呃不太注意这个问题。那再说一说 linux 系统,在 linux 系统或者说是立意 unix 系统,像苹果也是一个立意 unix 系统。 先说一下 link 系统,在 link 系统中这个集成开发环境呢,可能就不那么常见,就是说他一般不统一,因为什么呢?因为在 link 环境下,我们大多数 是基于这个命令行界面来进行开盘,那它里面的话就把原代码编辑,还有我们的这个编辑过程中的这个工程管理, 还有我们的这个工具店呢,就区分的话区分了几个步骤,相当于就是把我们原来在 vivo studio 里面的话一次性搞定的这些事情他就分布来做了。首先我们说这个原代码的一个编辑,在另次系统下著名的有什么 vivim 这种什么萌萌编辑器,他呢主要是用来实现编辑我们的什么原代码。那编辑完之后的话,我们就比如说我们经常编辑一个点, 比如说我们简单的编辑一个什么呃,魅点 c 是吧?魅点 c 我们进行来编译的时候,那这个时候我们可能直接用这个 jcc 呃 呃卖点 c, 然后就直接生成了我们的这个可执行文件。那这里的 g c c 呢?是 links 下提供的一套这个工具店,它里面包含了这个编译器、会编器以及电接器。 另外的话,我们如果说在 linux 系统下有成百上千个这个点 c 文件, 点 h 的这种头文件需要参与编译的时候,我们最早的话一般使用的是什么 mac 这个工具? mac 工具的话要使用它来进行编译的话,我们必须要什么?要配置什么 mac fail 文件,是吧?我们要写那个 mac fail 文件, mac fail 文件 输给我们的这个 mac 工具,然后我们的 mac 在调用的时候,他就会按照我们的这个 mac file 里面的规则, 然后调用我们的一些编辑工具。啊,编辑工具生成我们的这个目标文件,这个的话是在 links 下的一个,呃, c 元代码的一个什么编译过程? 那在这个苹果操作系统中呢?苹果操作系统中里面的话,他也有一个集成开发环境,主要是这个什么插扣的插扣的他跟我们的这个 viro studio 的 使用,还有他这个界面可就是界面的这个什么美观程度,或者说是界面的这个友好性相对来说基本差不多。 它里面的话,呃,它的编辑器的话也是在插靠的里面继承的,还有它这个工程管理也有插靠的的一个工程,那它的工具店呢?呃,最早的话它用的也是这个 jcc 工具店, 但是后来因为他们要做一些自己的开发,所以他们目前的话主要是支持这个什么 clean 啊, clean 这个工具店,那这个我们就了解了一下各个操作系统下的什么 c 语言,或者说是 c 加加语言的一个编译过程。 呃,如果说我们只针对于在某一个操作平操作系统平台下进行编译的话,呃,那我们平时的这个编译呢?感觉好像没有什么问题,但是因为有一些项目或者是工程呢, 他们有一个这样的一个特点,就比如说他们既要在这个 windows windows 的环境下生成一些这个,比如说,呃动态链接库这样的一些文件,又需要在这个 links 下生成一些什么 links 下的一些点儿文件,是吧? 哎,有时候的话他可能还要依赖于什么其他的一些架构生成一些呃文文件,生成一些这个运行的这个目标目标的一个文件。那这种情况下就有一个问题,就是我们写的一个代码, 比如说我们在这个温度环境下写的一些代码,然后我们当时使用的是是是什么?使用的是这个 viro studio 这个集成开发环境,把我们的这个工程命名啊,什么管理,然后添加那些工程文件数呢?把他们都呃在 viro studio 里面的话继承,然后 编影打包,整个过程中的话就是完成了。但是突然有一天呢,我们的这个项目可能要布局到什么?布局到我们的这个 links 上面去,那如果要把我们的这个员工成文件的话,要 布局到我们的这个 ins 上面去,假如说我们这个温度系统下,你写了个原文件只有几十个,对吧?几百个这样的一个原文件,那还好,如果说你有成百上千的这个点 c 啊,点 c 的这个原文件,你要在 ins 上面按照 一定的规则让他们重新参与编译的话,那相当于你就要把原文件全部拷贝过来,然后在这个 link 系统下使用这个 mac 工具或者内夹这个工具编写的它这个 maker, 或者呃必要的点内加的必要的这个什么这种配置文件,然后再去生成在 link 下面重新调用什么 gcc 这个工具点生成他的什么目标文件, 那同样的,比如说你要把它布局到这个呃叉 code, 就是布局到这个什么苹果系统上的时候,也会出现这个问题。 那针对于这种问题的话,有一个什么弊端呢?就是我们同样的一个代码,布局在不同的这个平台上的时候,我们为了构建这个目标代码,那我们构建这个工程的时候就需要消耗呢大量的精力去做一些重复的事情, 那为了解决这个问题呢? c mac 就诞生了。 c mac 诞生的一个主要解决的问题是什么呢?它就是实现跨平台工程管理的一个生成。 怎么说呢?比如说你一套原代码,首先呢你把那个 c mac 的一个管理的相关文件啊,给他进行一个呃编写和配置之后,你在 windows 下之 windows 之 这个操作系统下使用 cmak 生成了你这个什么目标文件,那比如某一天你要把它直接移植到这个 links 操作系统下,那怎么办呢?那很简单,你只要把你的原文件还有你这个 cmake 的一个配置文件一起考过来,在这个 links 系统下直接新麦克,然后生成你这个文件,就一步就搞定了,就再不需要配置这个什么工程了。 那你考到这个那那个什么苹果系统像也是一样的,把你的原代码还有那个 cmac 那个配置文件考过来之后,你直接用调用 cmac 这个工具,他就可以生成这个苹果操作系统上面的一个什么可用性的目标文件。 那说了这么多, cmac 它到底是做什么用呢?其实这个 cmac 的话,就是用来 在 windows 下生成这个 viro studio 的工程文件,在 links 下生成 make 或者 need 啊,这种 make feel 它们的输入文件,它们的输入文件就是 make feel 或者是 need 的必要的文件, 还有生成的什么插靠的的工程文件。所以 cmax 的一个主要作用的话,就是为了实现这个跨平台代码的这个什么编译的一个方便性。 之前好多人说这个 c mac 其实是 mac 的一个什么呃,高级版本。那其实不是的,我们的这个 c mac 生成 生成的东西呢,其实是作为 mac 的一个输入文件来进行让 mac 进行编译的啊,那他除了能生成这个 macfiel 这种文件,他也可以生成这个什么 virusdo 的这个管理工具里面的这个什么 工程文件,还有这个什么插 cod 的这个工程文件。为了大家更直观的了解这个 cmac 的作用,我在这里给大家做一个演示。 好,现在我在我的这个 windows 操作系统下呢,这个 class six 里面的话,新建了一个命点 c, 还新建了一个 c maclist 点 tst 文件,还新建了一个什么必要的目录啊?这个必要的目录是空的, 然后这个 mini c 呢,就是我们的原文件,然后这个 c mac list 呢,点 t s t 呢?就是我们的什么 c mac 的一个配置文件。然后我们看一下这个 mini c 里面我们写了什么 mini c 呢?我们里面主要输出了一句 this is a c mac project test 啊,就这么一句话,然后这个 c mac list。 我们来看一下这个是什么东西呢?这个文件呢命名一定是 c mac list 点 t s t 啊,必须要命名成这个名字,然后这个文件呢是作为 c mac 这个工具的一个输入来使用的。 首先第一句这一句的话就是我把它放大一点 seemic minim required, 这个就是说我们这个 seemic, 因为它这个工具版本一直在更新,这个就是说明了我们这个 工程里面需要我们用到的 c mac 工具的这个版本。我们这里呢配置成二点六到三点五。然后这个 project project 就是相当于我们要新建一个工程啊,我们要新建一个 c maclist test 工程,然后我们的这个工程里面呢就要包含我们什么 menu c, 然后这个呢按 the inscutable 这个意思,就是要生成一个什么可执行文件,那我们生成的可执行文件的第一个就是可执行文件的名称,这里,呃,我和和工程名保持了一致,当然也可以不一致,就是生成的那个点 ese 文件, 然后的话就是说我要通过哪一些文件来生成我的这个什么?呃,目标文件,那我这里的话因为只有一个魅点 c 的一个输入,所以我这里就只有一个魅点 c。 好,这个的话是我在 windows 环境下的一个什么在 windows 环境下我的一个工程,是吧?叫做 cmac list test 啊, cmac test 这么一个工程,然后我里面的话有一个这么一个什么魅点 c 输出了一句什么 呃,一句测试,然后的话,比如说我这个工程在在我们的这个什么 windows 环境下, 在文字环境下呢,是我现在要编一坛,那我们之前的一个做法的话,可能就是通过这个 viral studio 把这两个功,把这个文件呢加载到这个 virus studio 里面,然后用它来配置, 配置完之后我们编译,然后生成,是吧?啊?我们今天的话换一种方式,就是用来那个 c mac 来管理它的一个生成。首先我们要在 windows 下把那个 c mac 安装了,我这里已经安装过了, 只是给大家演示一下啊,大家看一下就行了。 c mac 它有一个 g y 的一个界面啊,我们把这个打开 好,打开之后我们来看一下它,这里的话会首先让我们选择你这个原文件 soscode 在哪里放着,那我们找到我们刚才那个目录, 在这盘下 see class six, 好,就是在这个目录啊,你再看一下这个目录。 好,我们选中这个目录,这是我们的原代码文件所在的目录。然后这个的话就是说你要把你的这个什么工程到时候要新建在哪里? 我们这个工程是啥意思呢?就是说通过这个 cmak, 他呢在 windows 平台下,你可以指定让他生成这个什么 vr studio 的一个什么工程文件。 我们到时候为了不破坏我们的原代码的这个目录结构啊,我们把它就放在我们新建的这个必要的目录里面。好,然后我们在这里看这个 configer, configer, 然后我们点击一下这里的话,就会让我们选 选择我们要生成哪一种文件啊?要生成哪一种工程文件,你看这里可以生成 vivo studio 的各个版本的,然后 下面还有生成的什么?还有生成这个 n mac 费啊? n mac 的话主要是 就是 virus studio 里面的话自带的一个工具啊,它类类似于那个 links 下的这个 mac 工 mac 工具还有什么?嗯, m c m c sister 的这个什么 make feel 这是就是 windows 下支持 ins 命令的一些什么 工具集啊,还有 m j w, 对吧?我们之前也了解过,还有什么 unix make fail, unix make fail 的话,生成的就是呃 link 下的什么或者 下的什么 mac 文件,还有生成的什么逆减的必要的文件,对不对?对吧?等等。那我们现在的话,你看还有这个 codplus 等等的这么多的一个工程文件都可以生成,那我们现在的话,因为是在这个 windows 下,我们就生成呃 viro studio 的一个什么工程文件, 这个工程文件我们一定要注意啊,就是我们电脑必须已经安装了这个 virus 丢丢,我这里已经安装了一个 window studio 的二零二版本的一个什么就是社区版本啊。好,然后选中之后,下面的话我们都可以不用管啊,然后点这个 finish, 好,他已经开始这个什么进行配置了,然后我们在这个详详情框里面来看一下,他会 查找我们这个什么 s d k 版本,然后我们的这个 c 变异器,你看它是 m s v c 的一九点三六,对吧?还有这个 c 加的变异器,然后它要检测这个什么 c 跟 c 加的这个什么接口。 好,等它配置完成。好,配置完成,这里显示这个红色的是什么意思?红色的就是 z max, 它里面的话要生成一些自己的一些局部的一个变量,那这个这两个的话就是它生成新生成的。 好,然后这个过程的话,我们看就已经他检测我们的这个操作系统已经检测完完成了,而且他发现我们用这个 vivo studio 里面这个可以生成工程。然后我们看一下这个必要的文件,必要的文件里面的话就生成了这个 cmac 相关的。呃,几个什么 cmac con 文件,就是相当于 cmac 的一个,嗯,里面用到的一些变量的一个临时缓存文件啊。但是我们看一下这里面的话,我们刚才说我们的目标要生成什么?生成这个 virus studio 的一个 工程价,那这里还没有生成,那怎么办呢?就是还要执行一步,就是点这个 generate, 第一步这个 configure 它只是检测了我们这个操作系统里面的这个环境,然后看能不能生成你要生成的这个什么目标的这个东西。我们刚才生成的这个目标是 viro studio 的一个什么工程文件,然后它检测了没有报错,也就说明可以生成,然后我们点这个 generate。 好,等下它生成,点击 generate 之后,你看它这里的话,我们把这个 文件往大一点啊,我们看这里的话就生成了一个点 s l n 的这个文件。这个大家应该都比较熟悉吧,就是 windows 下的一个什么 virus u 六的一个工程管理文件。好,我们把它打开 的话已已经基本打开了啊,我们看在我们的这个解决方案管理器里面生成了三个工程, 一个是 all build 的,一个是 zero chick, 关于这两个工程的一个详细的呃情况,比如说他为什么会生成?大家可以去网上自行百度啊。 然后我们看一下这里的就生成的这个 cmac test, 那这个工程的话,就是我们刚才配置的用 cmac 配置的那个生成的工程,然后我们看一下它的 sost file 里面有我们的这个面点 c, 我们看一下我们的 这个面点 c, 是吧?用我们的这个面点 c, 然后我们因为这会儿的话,这个 obl 的工程是激活的啊,我们先把这个 cmds 让它配置为启动项目啊, 因为它里面有三个工程嘛,你必须要选中哪一个作为第一个启动项目,我们这里选一下 cmac list test 啊, cmac test 啊,这是我们的启动文件,然后我们在这里直接运行什么 b a 啊,就跟我们的正常平时的操作是一样的, 好已经运行完成啊,你看正常输出变异完成,是吧?正常输出,那这个的话就是我们在 那个 windows 下,我们把这个关掉, 这也关掉,那这个的话就是我们在 windows 下通过这个 c mac 生成了什么 viro studio 的一个什么工程文件啊?这里面的话都是它生成的一些工程文件。 然后比如说有一天的话,我们需要将我们的这个什么 menac 这个工程啊,就是我们的这个 menac 刚才完成的这么一个简单的这个工程要在这个 links 下,然后要在 links 下来进行一个什么 别影。那这个过程中的话,我这里当然只列了一个 minic 啊,你直接考过去编也可以,但是比如说我们这里有很端很大的一些这个很多的一些文件,那这个直接考过去之后,你肯定得写这个 microphone, 对吧?然后我们才能进行一个什么变异,是吧?不然的话你一个一个用那个 jc 去变异,肯定他这个关系啊,还有什么的都要你自己手动去把握,那肯定是不现实的。 那这个时候的话,比如说我们在这个把文件已经考到了我们的这个什么 links 文件下,那我在这里的话,嗯, 我在这里的话,使用这个 windows 下运行 lins 的一个平台的一个工具啊,就是这个。呃, c y g c y g min 啊, c y g min 这个工具我们看一下, 我们首先的话先 cd 到我们的这个目录啊,我们先 cd 到我们的这个目录, 我在这里直接改了啊, c d 到我们的这个 g 盘, c d 到 c 的 class。 好,我们看一下,假设我们现在的话,已经把这个文件,我们的文件呢,原文件,还有这个 cmac 的一个配置文件 cmac list 拷贝到了我们的这个什么 links 门 links 情况下,那这个时候,如果说我们文件很多的时候,我们不是要进行编译生成它吗?那怎么办呢? 我们是不是要对它来写这个什么 mac file 文件写完之后,然后用 mac 来进行编译生成我们的这个最终的版本呀?那是不是比较麻烦?那有了这个新 mac 之后的话,我们在这里的话就比较简单,首先我们在 在这个本地目录的话,我们建立一个什么,建一个我们的这个 bod, 或者说是你任意另一个目录,就是要你生成那个啥生成生成目标的一个什么存储的地方啊?我们这里 新建一个什么必要的 link 吧啊?然后我们 c 一到这个必要的 link 里面去,然后我们在 link 的环境下把 c mac 这个工具先安装了,然后我看一下我们这个有没有 c mac 啊? 好,我这里的话,嗯,啊,不好意思, worship 错了, 你看一下啊,我现在我的 linus 平台下的话,也安装了这个什么 c mac 啊,版本是三点二,五点三。那我现在的话,只要在这个目录下执行这个 c mac, 然后我要构建的那个元代码目录是不是在我的上一集目录,我输入一下,然后点回车, 这个时候的话,它就在我的这个 linus 系统中的话, 检测我现在的这个什么 ins 系统里面的这个 c c 加的变异器是什么,然后会生成对应的这个什么。呃,工程文件在 lins 下的话,默认生成的就是这个 unix make fail 文件, 让我们看一下在这里面都生成了什么,是不是生成了 make file 文件。那有了 make file 文件,我们是不是就可以进行编 变异了,是吧?那直接再执行一个 mac, 是不是当前的目录我们进行变异 mac 啊?我们现在进行 mac 啊, 不用输这个点啊,一般这个 mac 它会自动查找当下这个目录下有没有 macfiel 文件啊,查找完之后,你看它这个边影, 呃,然后便于完成生成了这个 c macleis test 点 e s g 文件。呃,这个是因为我在那个 windows 下用的这个 c y g 音啊,模拟的是大概就是 好像就是我们在这个 links 下的操作的一些命令啊,其实在 links 你考过去也是这样子的,然后我们看一下这个生成的 文件能不能用?行啊?好,也是正常用行。 那通过这个演示呢,大家就可以发现,有了这个 cmac, cmac 的这个管理工具呢,它就能够在各个平台下啊,只要你在那个原码里面配置了这个 cmac 的一个配置文件, 我们在这看一下,只要你这个原码啊,配置了你这个 cmak 的这个相关语法之后, 他呢?到时候你比如说你换了平台之后,你只需要用做什么呢?只需要用 cmak 啊,重新生成一下你这个操作系统里面的工程文件,然后你运行你当前系统下的这个工程工具啊,去构建,就能 把这个目标代码在你这个本地平台上构建出来。除了这种用法呢?呃,有时候我们在这个令下的话,因为 写这个 mac fail, 写这个 mac fail 有时候感觉太麻烦了,那你也可以使用这个 c mac 的语法来写管理你的原代码,管理完之后的话, 只要调一下这个什么 c mac, 然后输入你这个原文件的这个什么路径,它就可以生成对应的这个什么 makefiel, 然后你执行 mac 就可以构成你这个什么目标的一个生成你的什么可可执行的这个什么目标代码啊。 好,那通过本节的一个分享的话,想必大家都了解了这个 seemic 是做什么用的啊?然后它跟 make 还有 make 这些是什么关系啊?好,有了这些这个了解之后的话,我们后期主要是针对于这个 cmak 里面的这个配置文件,比如说这个 simic list 啊,这个文件怎么来写?后面的话会介绍一些 simic 相关的这个语法知识,还有他这个怎么管理我们的这个工程文件啊? 好,那今天的一个分享的话就到这里吧,感谢大家。