原文地址:./configure,make,make install的作用

这些都是典型的使用 GNU 的 AUTOCONF 和 AUTOMAKE 产生的程序的安装步骤。

  • ./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有 CC 或 GCC,并不是需要 CC 或 GCC,它是个 shell 脚本。

    • ./configure 配置编译环境;
  • make是用来编译的,它从 Makefile 中读取指令,然后编译。
  • make install是用来安装的,它也从 Makefile 中读取指令,安装到指定的位置。

AUTOMAKE 和 AUTOCONF 是非常有用的用来发布C程序的东西。


  1. configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码

    1. :./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,

      1. 执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),
      2. 资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。
    2. 同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。
    3. 有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,
    4. 你可以通过允许 ./configure –help 察看详细的说明帮助。
  2. make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些 perl 或 python 编写的软件需要调用 perl 或 python 来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开

  3. 发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

  4. make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。


Linux的用户可能知道,在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件。使用上述三个自动工具,就可以生成configure脚本。运行configure脚本,就可以生成Makefile文件,然后就可以运行make、make install和make clean。

configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。

这时,就可运行configure脚本了,运行configure脚本,就可产生出符合GNU规范的Makefile文件了:
$ ./configure

到此时,就可以运行make进行编译,在运行make install进行安装了,最后运行make clean删除临时文件。
$ make
$ make install (注:运行这个要有足够的权限)
$ make clean

利用configure所产生的Makefile文件有几个预设的目标可供使用,其中几个重要的简述如下:

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开发环境-的人去重新编译。

./configure,make,make install 的作用相关推荐

  1. ./configure,make,make install的作用

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...

  2. ./configure,make,make install的作用(转)

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC ...

  3. ./configure make make install详解

    在Linux中利用源码包安装软件最重要的就是要仔细阅读安装包当中的README  INSTALL两个说明文件,这两个文件会清楚的告诉你如何可以正确的完成这个软件的安装!          我们都知道源 ...

  4. 小知识:linux中的./configure --prefix和--host的作用

    一般而言,源码的安装共三个步骤:配置(configure).编译(make).安装(make install). --prefix的作用是指定安装路径,若是不进行该选项的配置,安装之后的可执行文件默认 ...

  5. linux下如何使用configure/make/make install命令编译安装卸载程序

    源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install).安装成功的源码就是所谓的可执行文件,在你不需要的时候,也是可以删除/卸载(remove/u ...

  6. configure make make install in linux

    这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤. make 的安装apt-get install make ./configure是用来检测你的安装平台的目标特征的. ...

  7. linux configure 的 --prefix 参数的作用

    linux configure --prefix 的作用是:编译的时候用来指定程序存放路径 . 如下面示例: cd keepalived-1.2.18/ && ./configure ...

  8. ./configure make make install 编译安装和卸载 (Linux)

    正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install).   configure文件是一个可执行的脚本文件,它有很多选项, ...

  9. go get 和 go install的作用

    go get 和 go install 都是 Go 语言中用于包管理的命令,但它们的作用不太一样. go get 命令用于下载并安装指定的包及其依赖项,然后将它们放在 $GOPATH 目录下的对应位置 ...

最新文章

  1. 时间计时android程序,Android 时间计时器控件 Chronometer
  2. 初识Tcl(一):Tcl 命令
  3. C语言程序设计之最大公约数与最小公倍数算法
  4. python 画希尔伯特曲线
  5. 差分约束 1:pku 1201 Intervals 2:pku 1364 King 3:hdu 1534
  6. MySQL中间件之ProxySQL(14):ProxySQL+PXC
  7. MySQL 5.7.11 重置root密码
  8. devops_您无法购买DevOps
  9. mysql dump 二进制_mysqldump+二进制日志备份恢复
  10. oracle如何快速查找,Oracle 如何快速查找和删除重复记录
  11. oracle的表空间的检查,oracle数据库检查所有表空间使用率的脚本
  12. 《Python自动化》学习笔记:百度云智能实现黑白图片上色,人物动漫化(代码干货)
  13. Mapv 是地理信息可视化开源库
  14. 使用JQuery快速高效制作网页交互特效第六章课后
  15. 普林斯顿陈丹琦:如何让「大模型」变小
  16. Metasploit攻击winserver2008实例
  17. 80psi等于多少kpa_PSI和KPa如何转换
  18. [附源码]计算机毕业设计JAVAst音乐网站
  19. java数组实现 多个数字求最大公约数
  20. C# 调用微软自带的语音识别

热门文章

  1. 泛微OA项目引入jar包说明
  2. 数据处理——数据编码
  3. mysql replication 延时_MySQL:延迟的主从复制 ( Delayed Replication )
  4. android期末大作业_关于大学期末的一点碎碎念
  5. Spark性能优化:Shuffle调优篇
  6. python描述符魔术方法_Python类型转换的魔术方法详解
  7. 微信表情图像代表什么意思_电表型号怎么选 型号字母都代表什么意思
  8. python 中decorator和property
  9. 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)
  10. LeetCode35. 搜索插入位置(二分查找)