./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
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 察看详细的说明帮助。
2、make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
3、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开发环境-的人去重新编译。

文章来源:http://www.linuxidc.com/Linux/2011-02/32211.htm

.

转载于:https://www.cnblogs.com/weiok/p/5726814.html

linux 源码安装详解相关推荐

  1. mysql-5.7.18-linux_MySQL5.7.18 for Linux7.2 源码安装详解

    源码安装MySQL比较麻烦,需要安装依赖包,然后进行编译,时间较长,建议安装二进制的MySQL,时间比较快: 用到的软件包: mysql-5.7.18.tar.gz boost_1_59_0.tar. ...

  2. MySQL5.6.16二进制源码安装详解及一键安装实现

    一.系统环境 1.1操作系统 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [roo ...

  3. mysql源码安装详解

    文章目录 MYSQL简介 实验环境 安装步骤 总结 mysql常用配置文件参数 常见mysql 启动报错总结 MYSQL简介 查看mysql简介 查看cmake编译mysql 实验环境 数据库 IP ...

  4. linux源码Makefile详解(完整)-转

    随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中.面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后, ...

  5. Android 源码编译详解【合集篇】

    Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...

  6. Linux源码安装步骤

    Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码.  而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上 ...

  7. Linux源码安装mysql 5.6.12(cmake编译)

    转载链接:http://www.2cto.com/database/201307/229260.html Linux源码安装mysql 5.6.12(cmake编译) 1.安装make编译器(默认系统 ...

  8. linux怎么用源码安装mysql,Linux源码安装mysql步骤

    创建文件夹: mkdir  /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...

  9. linux 源码安装 zip/unzip

    linux 源码安装 zip/unzip 场景说明 Linux服务器,没有root权限 需要使用zip/unzip,但遗憾的是服务器没有安装 解决办法 自己用源码编译 步骤 下载zip/unzip的源 ...

最新文章

  1. 一文看懂百度云智峰会:发布两大中台、八大方案,落地细节精准到发丝
  2. 20101029总结
  3. 格子大法与换入换出分析
  4. 三层登录VB.NET实现
  5. SM13: 分析SAP事务提交时的FM调用
  6. 某法院HP-P4500存储数据恢复案例
  7. mysql pdo 查询一条数据,使用 PDO 关联查询 MySQL 数据
  8. android开机画面大集合,汇总各种Android 开机画面修改方法 第二屏
  9. 路径规划(一) —— 环境描述(Grid Map Feature Map) 全局路径规划(最优路径规划(DijkstraA*star) 概率路径规划(PRMRRT))
  10. IDEA启动tomcat控制台出现中文乱码问题完美解决方案(亲测有效)
  11. 苹果手机几月份最便宜_苹果手机越来越便宜,安卓手机越来越贵,果真是这样吗?...
  12. java 克隆对象_Java中克隆(Clone)一个对象
  13. arduino上传项目总是出错,串口通信或TX/RX显示上传项目出错
  14. IIS 发生意外错误 0x8ffe2740
  15. Linux平台总线驱动设备模型
  16. 7个国外社交网络用户数据情况
  17. 绿联硬盘盒linux驱动,绿联 USB3.0 SATA 接口通用移动硬盘盒子体验与选购技巧
  18. 个人邮箱Outlook登录入口在哪?遇到登录邮箱服务器配置错误的解决办法
  19. jenkins安装和配置(一):ubuntu 20.04 jenkins安装
  20. 使用C语言实现卷积运算及移动平均滤波器

热门文章

  1. Sublime Text 2 中怎样查找scope的名称
  2. 文件服务器安全,文件服务器安全
  3. java qt jni_java JNI 实现原理 (二) Linux 下如何 load JNILibrary
  4. 大数据实训报告_教学大数据实训平台解决方案_德拓信息_上海市徐汇区
  5. hdu1287 破译密码
  6. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
  7. 【Android 插件化】Hook 插件化框架 ( 通过反射获取 “插件包“ 中的 Element[] dexElements )
  8. 【错误记录】Google Play 上架报错 ( APK 大小 | 目标 API 级别 | Google Play 帮助文档 )
  9. 【MATLAB】进阶绘图 ( Boxplot 箱线图 | boxplot 函数 | Error Bar 误差条线图 | errorbar 函数 )
  10. 【Android 进程保活】oom_adj 值 ( oom_adj 值对应的进程优先级 | oom_adj 值动态改变 | 进程保活优化方向 )