C语言编译工具学习总结
在研发的过程中我们常常需要安装一些程序,其中一种重要的按照方式便是从源码安装。像Redis,mysql,php, nginx这些开源的程序都可以从源码。在我们下载到源码之后,在README文档中常常告诉我们执行以下命令即可安装:./configuremake 或者make install一直很好奇这是怎么样的一个过程。一番研究之后终于知道了些眉目。在这里总结一下。 首先,我们看看这个configure 是什么,vim打开他,这是个shell脚本。他的作用是用来生成Makefile文件的。 然后,我们看看make这个命令是干什么的,用man make 查看帮助,发现它是gnu回来维护一组程序的工具。直白的讲,就是用来根据源码生成可执行文件的工具。很好奇,这个工具咋就知道按照什么样的步骤将我们的源码编译成可执行文件呢?其实是根据./configure 生成的Makefile 来生成的。 到这儿,我们可能已经明白了个大概。但是这次好奇心再次拷问我:./configure 是这么生成Makefilede 呢。于是我打开./configure 文件,没读几行,发现这简直是个天书。很想知道作者是怎么写成的。 经过一番google+baidu,一个主要的脉络出来了:./configure 是可用手工编写,但对于大型项目,各种依赖相当复杂,加上不同平台上的posix接口差异,人工编写的难度极大。于是有人就开发了一系列的工具来生成这个文件。 了解到这个背景之后,我们可以想象,如果是我们自己编写这样的一套工具会怎么做呢,首先我们要知道这些源码都是什么,有一些什么样的兼容性需要处理。因此需要扫描代码,于是第一个神器autoscan出现了。man autoscan,生成一个configure.scan 文件。目前离我们的./configure 还很远,在网上一番查询之后,aclocal,automake,autoconf 一系列神器相继出现。下面我们就来看看这些神奇是如何制造出configure文件的。 1.将configure.scan 重命名为configure.ac,修改其中的一写配置,添加AM_INIT_AUTOMAKE() 宏,作为aclocal的输入生成aclocal.m4 文件。m4文件的内容就是一系列的宏。 2.执行autoconf, autoheader 把aclocal.m4 转换成config.h config.h.in 3.编写Makefile.ac 配置可执行文件名称,代码等,通过automake -a 命令,生成configure。
- 学习C语言的Windows下编译工具
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
- C语言入门学习(2)——C语言编译工具
- C语言学习内容总结2017/11/18(malloc函数)
- C语言学习阶段性总结
- 数据结构学习工具总结
- 黑 马 程 序 员_视频学习总结<C语言>----07 static和extern关键字、typedef
- 黑马程序员之IOS学习总结——05 C语言中的指针
- 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结
- JNA调用C语言动态链接库学习实践总结(指针模拟)
- 性能测试工具Locust基础安装教程与学习总结
- 三.ARM裸机学习之dnw,SD卡工具下载及安装交叉编译工具链
- Boost学习总结(一)VS2010环境下编译STLport和Boost
- Ant打包编译部署工具学习笔记
- c总结3 --- C语言中的strstr函数(指针学习2)
- 【POCO】POCO学习总结(三)——交叉编译
- android反编译工具总结
- 软件工程线上课程(C语言实践篇)学习心得总结
- android反编译工具总结
- 编译原理学习总结