粉丝21.9万获赞106.1万

第二章第四节使用 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。

今天我们来了解一下软件构建工具在开发当中的使用。软件构建工具能自动化完成代码管理、编译链接打包的整个过程,有效的提高软件开发效率和代码质量。针对 c 和 c 加加程序, smax 被广泛使用的构建工具, 在几乎所有主流的 ide 中都内置 smake 的支持,并且无论你在哪个平台上开发,都不需要手动配置 make file, smake 会自动选择平台对应的编译工具,实现自动构建。 接下来我们用 smake 来构建一个最小项目。第一步,安装 smake 构建环境,访问 smake 官网,下载最新的安装包, 登录环境后台解压安装包到本地路径。然后需要配置系统环境变亮, 才能使用 smoke 工具复制 smoke 解压路径,打开 profile 文件,跳转到最底部,将 smoke 安装路径配置到 pass 环境变量下,然后执行 source 命令,使刚配置的环境变量生效,或者重新登录也能使环境变量生效。 随后在命令行中输入 smack 命令,检查安装是否有问题。另外,我们还需要通过系统命令安装 gcc 编译工具,这是因为 smack 自身是不带 c 语言编译工具的。开发环境搭建好了,下面我们开始编码。第二步,开发构建 c 语言项目。 首先我们在项目的根目录下创建编译路径,原文件路径和 cma 类似,点 txt 文件。在原文件管理路径下,我们创建一个点 c 的原文件,并配置好,简单的 测试用力。然后在 cmak list 点 txt 文件下配置项目的构建信息。首先第一行指定 cmak 支持的最低版本,第二行指定项目名称。第三行指定项目支持 c 十一标准, 第五行指定输出的可执行文件与项目名称相同,并指定编译原文件。 men 点 c, 随后通过快捷键 c t r l 加 shift 加 p, 选择配置 smack 工程项目,然后点击下方的生成所选目标生成项目的可执行文件, 再点击下方的在终端窗口中启动所选目标执行程序,跳转终端窗口显示执行结果。如果业务增加,代码量越来越大,需要归纳提取单独的模块管理。第三步,增加模块代码。假如这个模块是 有一创建头文件文件和代码文件,编写头文件代码和功能模块代码返回 cmak list, 点 txt 文件中配置模块。首先在第五行配置模块头文件, 第六行配置模块源文件,第八行可执行文件添加模块依赖,然后需要在程序入口添加模块,程序调用, 配置好后执行程序,查看主程序和模块输出信息。第四步,添加动态库调用。为了避免原地踏步,我们不能重复造轮子,不仅自己不能重复造轮子,还要使用别人造的轮子。 动态库就是别人的轮子或者通过自己精炼出来的模块构建出的动态库。我们先手动创建一个动态库,项目配置公共头文件,动态库功能实现的原文件 以及配置 cma cliffs, 点 txt 文件。 执行生成按钮生成,点 s o 动态库文件,然后回到之前项目中配置动态库,在 cmx list, 点 txt 文件中添加动态库配置第五行添加动态库头文件。引用第十行配置动态库的搜索路径 第十一行指定项目所引用。动态库配置好后,到程序入口调用库函数执行程序,查看主程序模块以及动态库调用的输出信息。


