这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。makeinstall是用来安装的,它也从Makefile中读取指令,安装到指定的位置。AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。1、configure这一步一般用来生成Makefile,为...
继续阅读 >
分类:编译
2014
11-07
11-07
Linux下使用autoconf和automake生成Makefile原理详解
作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“makeinstal”就可以把程序安装到Linu...
继续阅读 >
2014
11-07
11-07
PHP基础之常量1——语法简介
可以用define()函数来定义常量,在PHP5.3.0以后,可以使用const关键字在类定义之外定义常量。一个常量一旦被定义,就不能再改变或者取消定义。常量只能包含标量数据(boolean,integer,float和string)。可以定义resource常量,但应尽量避免,因为会造成不可预料的结果。可以简单的通过指定其名字来取得常量的值,与变量不同,不应该在常量前面加上$符号。如果常量名是动态的,也可以用函数constant()来获取常...
继续阅读 >
2014
11-07
11-07
PHP内核探索 —— 如何执行PHP脚本:Zend引擎是如何解释PHP脚本的
前面介绍了PHP的生命周期,PHP的SAPI,SAPI处于PHP整个架构较上层,而真正脚本的执行主要由Zend引擎来完成,这一小节我们介绍PHP脚本的执行。目前编程语言可以分为两大类:第一类是像C/C++,.NET,Java之类的编译型语言,它们的共性是:运行之前必须对源代码进行编译,然后运行编译后的目标文件。第二类比如PHP,Javascript,Ruby,Python这些解释型语言,他们都无需经过编译即可“运行”。虽然可以理解为直接运行,...
继续阅读 >
2014
11-07
11-07
PHP内核探索 —— 操作码OpCode:计算机最终是执行这些OpCode
运行一段PHP代码主要有两个阶段:编译和执行。当然编译过程中还包括词法分析语法分析不同阶段和细节,这里我们将其作为一个整体。在这两个阶段之间,PHP代码会被编译成opcode,可以将其认为是引擎的一个中间语言,编辑阶段把PHP源码生成opcode,然后在执行阶段执行这些opcode。这篇文章将简单的介绍opcode。PHP代码编译之后会生成许多的op,每一个op都是一个zend_op类型的c变量。相关的定义可以在{PHPSRC}/Zend/zend_compile.h中...
继续阅读 >
2014
11-07
11-07
PHP内核探索 —— 解释器的执行过程:引擎是如何执行PHP代码的
这里将介绍引擎内部执行一个PHP脚本的流程,以CLISAPI为例子来对流程中核心的部分做简单介绍,省去一些初始化及清理操作。CLI(CommandLineInterface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一个PHP脚本:/usr/local/bin/php-ftest.php这个命令将执行当前目录下的test.php脚本,我...
继续阅读 >