美文网首页
ubuntu16.04安装CMake和makefile的使用

ubuntu16.04安装CMake和makefile的使用

作者: carebon | 来源:发表于2022-02-27 16:09 被阅读0次

    CMake安装#

    首先需要确认是否安装好g++,gcc (安装方法 sudo apt-get install gcc,sudo apt-get install g++)

    下载新版本:

    下载:在cmake网站下载安装包: https://cmake.org/download/

    下载

     wget  https://[cmake](https://so.csdn.net/so/search?q=cmake&spm=1001.2101.3001.7020).org/files/v3.11/cmake-3.10.0.tar.gz 
    

    3、解压:tar -zxv -f cmake-3.10.0.tar.gz

    4、进入解压后的文件:cd cmake-3.10.0

    5、开始安装

    sudo ./bootstrap
    sudo make
    sudo make install
    

    6.卸载
    sudo make uninstall

    Makefile文件使用#

    什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。

    简单说makefile文件的执行可以在当前文件夹下 make##

    image.png

    ◊make是什么?

    make是一个命令工具,是一个解释makefile中指令的命令工具。它可以简化编译过程里面所下达的指令,当执行 make 时,make 会在当前的目录下搜寻 Makefile (or makefile) 这个文本文件,执行对应的操作。make 会自动的判别原始码是否经过变动了,而自动更新执行档。

    ◊为什么要使用make?

    假设,现在一个项目里面包含了100个程序文件,如果要对这个项目进行编译,那么光是编译指令就有100条。如果要重新进行编译,那么就又得像之前一样重新来一遍。这样重复且繁琐的工作实在是让我们很不爽啊。所以,用make来进行操作,间接调用gcc岂不是很方便?如果我们更动过某些原始码档案,则 make 也可以主动的判断哪一个原始码与相关的目标文件档案有更新过, 并仅更新该档案。这样可以减少重新编译所需要的时间,也会更加方便。

    ◊makefile又是干什么的?

    makefile其实就是一个文档,里面定义了一系列的规则指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,它记录了原始码如何编译的详细信息! makefile一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

    先看一下makefile的规则:

    目标(target):目标文件1 目标文件2

    <Tab>gcc -o 欲建立的执行文件 目标文件1 目标文件2

    目标(target)就是我们想要建立的信息,而目标文件就是具有相关性的 object files ,建立执行文件的语法就是以 <tab> 按键开头的那一行!特别留意,『 命令行必须要以 tab 按键作为开 头』才行!它的规则基本上是这样的: •在 makefile 当中的 # 代表批注;
      •<tab> 需要在命令行 (例如 gcc 这个编译程序指令) 的第一个字符;
      •标的 (target) 与相依档案(就是目标文件)之间需以『 :』隔开。

    下面举个例子说明:

    先分别创建三个文件,如图

    image

    创建一个makefile文件,然后进行规则编写

    image

    现在就可以使用make命令编译文件了,这样是不是很方便呢?

    image

    如果不想让编译规则显示在屏幕上,只要在makefile里规则编写前加个@它就不会显示了~

    如果现在再对文件编译一次会发生什么?嘿嘿,大家可以自己试一下。

    如果想要下达一 个指令就直接清除掉所有的目标文件与执行文件,又该怎么做呢?

    我们可以在makefile里面定义一个clean,执行rm的操作。但是有一点要注意的是,在这里我们最好使用伪目标进行操作。makefile里伪目标用.PHONY进行声明。当一个目标被声明为伪目标后,make在执行规则时不会去试图去查找隐含规则来创建它。这样就提高了make的执行效率,也解决了文件目录中如果出现名为clean文件,clean操作不被执行的问题。

    image.jpeg
    来源:https://www.cnblogs.com/qiaopei/p/5550168.html

    相关文章

      网友评论

          本文标题:ubuntu16.04安装CMake和makefile的使用

          本文链接:https://www.haomeiwen.com/subject/jlphrrtx.html