zoukankan      html  css  js  c++  java
  • configure,make和make install关系

    linux编译安装中configure、make和make install各自的作用

    ./configure是用来检测你的安装平台的目标特征的。configure根据给定的参数和系统环境会生成Makefile控制代码。
    make是用来编译的,读取Makefile中的配置对源码进行编译。
    make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
    AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。
    

    1、configure

    一般用来生成 Makefile,为下一步的编译做准备。
    
    你可以通过在 configure 后加上参数来对安装进行控制,比如代码:
    
    ./configure --prefix=/usr
    将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。
    同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。

    [不同软件的编译 configure 参数不同,请使用该命令查阅]

    ./configure --help
    • --with-PACKAGEwith表示,是否需要添加某个功能,往往需要指定依赖的外部库在哪里,该软件包若已经安装可以指向该包安装目录;
    • -enable-FEATURE enable表示某个功能是否开启[yes/no],且这种功能往往是内置的.

    2、make

    make 的作用是开始进行源代码编译,
    以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。
    如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行)。
    make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gccld 以及运行某些需要的程序进行编译的程序。
    一般情况下,他所使用的 Makefile ,由 configure 这个设置脚本根据给定的参数和系统环境生成。

    3、make install

     安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(sudo make install)
    将上一个步骤所编译完成的数据给他安装到预定的目录中,玩陈二狗安装

    4、其它命令

    make all:
    产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。

    make clean:
    清除编译产生的可执行文件及目标文件(object file,*.o)。

    make distclean:
    除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。

    make install:
    将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。如果用bin_PROGRAMS宏的话,程序会被安装至/usr/local/bin这个目录。

    make dist:
    将程序和相关的档案包装成一个压缩文件以供发布。执行完在目录下会产生一个以PACKAGE-VERSION.tar.gz为名称的文件。 PACKAGE和VERSION这两个变数是根据configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。在此范例中会产生test-1.0.tar.gz的档案。

    make distcheck:
    和make dist类似,但是加入检查包装后的压缩文件是否正常。这个目标除了把程序和相关文件包装成tar.gz文件外,还会自动把这个压缩文件解开,执行 configure,并且进行make all 的动作,确认编译无误后,会显示这个tar.gz文件可供发布了。这个检查非常有用,检查过关的包,基本上可以给任何一个具备GNU开发环境-的人去重新编译。

      

  • 相关阅读:
    linux的软连接和硬连接
    各种Python简单功能代码
    《财报就像一本故事书》刘顺仁(二) ——财务报表
    Atitit .h5文件上传 v3
    Atitti. 语法树AST、后缀表达式、DAG、三地址代码
    Atitit.在线充值功能的设计
    Atitit。数据库 安全性 重要敏感数据加密存储解决方案
    atitit.数据验证db数据库数据验证约束
    Atitit.提升电子商务安全性 在线充值功能安全方面的设计
    Atitit.antlr实现词法分析
  • 原文地址:https://www.cnblogs.com/sjxbg/p/11375685.html
Copyright © 2011-2022 走看看