make/makefile/cmake/nmake

这篇具有很好参考价值的文章主要介绍了make/makefile/cmake/nmake。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近,有没有被make、cmake、makefile... ... 这些东西绕晕了,看看下面的文章,也许就可以理解清楚了。

1. gcc

它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。

我们的程序只有一个源文件时,直接就可以用gcc命令编译它。

可是,如果我们的程序包含很多个源文件时,该咋整?用gcc命令逐个去编译时,就发现很容易混乱而且工作量大,所以出现了下面make工具。

2. make

make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。

3. makefile

这个是啥东西?

简单的说就像一首歌的乐谱,make工具就像指挥家,指挥家根据乐谱指挥整个乐团怎么样演奏,make工具就根据makefile中的命令进行编译和链接的。makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令。

makefile在一些简单的工程完全可以人工拿下,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改,这时候就出现了下面的Cmake这个工具。

4. cmake

cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他更牛X功能,就是可以跨平台生成对应平台能用的makefile,我们就不用再自己去修改了。

可是cmake根据什么生成makefile呢?它又要根据一个叫CMakeLists.txt文件(学名:组态档)去生成makefile。

5. CMakeList.txt

到最后CMakeLists.txt文件谁写啊?亲,是你自己手写的。

6. nmake[1]

nmake又是啥东西?

nmake是Microsoft Visual Studio中的附带命令,需要安装VS,实际上可以说相当于linux的make,明白了么?

总结一下大体流程[2]

1.用编辑器编写源代码,如.c文件。

2.用编译器编译代码生成目标文件,如.o。

3.用链接器连接目标代码生成可执行文件,如.exe。

但如果源文件太多,一个一个编译那得多麻烦啊?于是人们想到,为啥不设计一种类似批处理的程序,来批处理编译源文件呢?

于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。

对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。(cmake中有很多设置库的,此时还不是可执行文件,而make生成后才是二进制可执行文件。)文章来源地址https://www.toymoban.com/news/detail-641021.html

到了这里,关于make/makefile/cmake/nmake的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux--make & makefile

    make 工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能, 而是用类似于批处理的方式—— 通过调用 makefile 文件中用户指定的命令来进行编译和链接的 。 makefile 命令中就包含了调用 gcc(也可以是别的编译器)去编译某个源文件的命令。 makefile 在一些简

    2024年02月12日
    浏览(36)
  • make/makefile的使用

    make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项目自动化构建 make/makefile是Linux项目自动化构建工具,将多个源文件放在makefile中,通过make命令,通过makefile文件中的依赖关系,使得文件实现自动化编译,极

    2024年02月16日
    浏览(36)
  • opencv安装make时报错: 没有指明目标并且找不到makefile make: *** 没有指明目标并且找不到 makefile。 停止。

    在利用安装包进行opencv安装时,当按照指令安装好依赖,进行下载opencv文件夹下,建立build文件夹并进入其文件夹后,利用CMAKE进行编译,但是编译成功之后,我们进行 sudo make 的时候会出现如下错误: 此时,首先解释一下原因是因为cmake之后在build文件夹中没有makefile文件,所

    2024年02月11日
    浏览(39)
  • Linux工具make与makefile

    自动化构建工具 make / Makefile 是一个备受关注的话题。在现代软件开发中,构建和部署过程越来越复杂,需要更加高效和自动化的工具来帮助开发人员管理项目。 Make / Makefile 就是这样一种工具,它可以通过定义规则和依赖关系来自动化地构建项目。本文将介绍 make / Makefile 的

    2023年04月19日
    浏览(35)
  • Linux: make/Makefile 相关的知识

      会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复

    2024年01月24日
    浏览(37)
  • 【Linux】Make和Makefile快速入门

    作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等 座右铭:松树千年终是朽,槿花一日自为荣。 目标:熟练掌握Make和Makefile的使用 毒鸡汤:人生就像一条河,左岸是无法忘却的回忆,右岸是值得把握的青春,中岸是正在燃烧的面孔。 望小伙伴们点赞👍收藏✨加

    2024年02月04日
    浏览(42)
  • Makefile基础教程(make的隐式规则)

    本篇文章将给大家介绍make的隐式规则。 Make 的隐式规则是指 Make 在没有找到显式规则的情况下,会自动使用的一组规则。这些规则是预定义好的,可以被 Make 自动识别和调用,不需要用户指定具体的规则。 隐式规则的使用可以大大简化 Makefile 的编写,特别是当需要编译大量

    2024年02月06日
    浏览(39)
  • GNU make系列之介绍Makefile(0)

          在本章节介绍Makefile。       2.1 GNU make工具会自动决定哪些程序需要被重新编译,并且执行相应的命令来重新编译程序。在本系列博客中,我们会介绍GNU make。GNU make是由Richard Stallman和Roland McGrath开发的,在3.76版本后由Paul D. Smith开发。       在本系列博客中,所

    2024年02月10日
    浏览(43)
  • 【linux】2 make/Makefile和gitee

    ヾ(๑╹◡╹)ノ\\\" 人总要为过去的懒惰而付出代价 ヾ(๑╹◡╹)ノ\\\" 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定, 哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能

    2024年02月11日
    浏览(34)
  • Linux开发工具Make/Makefile篇

    我们使用gcc/g++编译代码时,每次都要输入一长串的指令,对于单个文件或者文件较少的时候,我们还能接受,可是当文件较多的时候,我们再一个一个编译,就会比较麻烦。Linux中 make 命令加上 Makefile 文件搭配使用,就可以完成项目的自动化构建。 C代码 创建makefile文件 写入

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包