这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。
make 的安装apt-get install make
./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章。

======================================

configure是一个脚本,用来确定所处系统的细节,比如使用何种编译器、何种库,以及编译器和库的保存位置,并把Makefile.in的相应部分进行替换,形成Makefile。

================================

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

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

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

$ ./configure

6. 到此时,就可以运行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开发环境-的人去重新编译。
原文转自: http://hi.baidu.com/sheshi37c/blog/item/358339f3a622ac58342acc55.html

configure make make install in linux相关推荐

  1. ./configure make make install详解

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

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

    原文地址:./configure,make,make install的作用 这些都是典型的使用 GNU 的 AUTOCONF 和 AUTOMAKE 产生的程序的安装步骤. ./configure 是用 ...

  3. 如何处理错误消息Please install the Linux kernel header files

    Please install the Linux kernel "header" files matching the current kernel 当我启动minilkube时遇 ...

  4. 【configure】如何用automake、autoconf指令生成configure并创建自己的linux tar.gz安装包【初级篇:简单建立-测试】

    目录 流程 一.安装包tar.gz的生成 准备源文件 autoscan 生成configure.scan aclocal autoconf autoheader Makefile.am automak ...

  5. linux系统pam配置文件,【PAM】 How to Configure and Use PAM in Linux?

    一.什么是PAM PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制. 它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认 ...

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

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

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

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

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

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

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

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

最新文章

  1. 每日一道面试题(第7期)---Android补间动画与属性动画的区别
  2. Service Fabric 与Ocelot 的集成
  3. 查询子串_SQL视图、子查询和常见函数的应用
  4. mysql 隐藏中间四位_MySQL知识体系——索引
  5. css实用技巧:巧用css实现两栏等高布局
  6. F. 张胖胖玩多米诺骨牌 (南阳理工oj—21新生第二场招新赛)
  7. 【转】火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版...
  8. linux free命令详解(一)
  9. 后疫情时代:对话下一个 10 年的技术趋势
  10. 【实用技巧】下载音乐到本地电脑
  11. 佳能Canon PIXMA TS208 打印机驱动
  12. iscsi发起程序chap_iSCSI,iSCSI发起程序,仲裁配置和SQL Server群集安装
  13. 微分方程中解、特解、通解的区别
  14. P8842 [传智杯 #4 初赛] 小卡与质数2 题解
  15. MacOs 查看本地IP和Mac地址
  16. python colormap_Python matplotlib的使用并自定义colormap的方法
  17. 焦点弦的垂直平分线和轴的交点到焦点的距离和焦点弦的距离之比为二分之e
  18. 用 python 操作 Acad 绘图 的学习笔记
  19. 数据库查询结果去重常用方法整理
  20. 流畅稳定免费的LinuxMint20.1桌面系统安装调试讲解

热门文章

  1. pwnable.kr lotto之write up
  2. 女子监狱第一季/全集Orange Is the New Black迅雷下载
  3. Bower介绍及用法(转)
  4. 其他的AdapterView——Spinner
  5. 2013编程之美资格赛【传话游戏】
  6. jQuery最核心的基础设施之一——数据缓存模块进化史
  7. 文件操作03 - 零基础入门学习C语言62
  8. CVE-2020-0688 Exchange 远程代码执行分析
  9. Alluxio在多级分布式缓存系统中的应用
  10. SpringCloud的EurekaClient : 客户端应用访问注册的微服务(无断路器场景)