64位Linux环境安装PHP TCC 扩展方法

近日发现了一个很有用的PHP扩展,它可以让PHP直接执行C代码,无需编译。TCC(Tiny C Compiler)是一个C编译器,支持直接执行C源代码。

关于TCC的介绍这里不多说,刚开始在32位Ubuntu下安装,很顺利就装了,不过在64位CentOS上安装时却遇到很多错误,花了差不多半天的时间终于搞定了。

下面详细讲一下我在64们CentOS上安装tcc 的 php扩展中遇到的问题以及解决办法

一、安装TCC编译器

从官网  下载源码,编译安装。

注意不要直接从官网那里下载源码,那里的代码在make编译完,执行make test 时会报错,如下:

 ------------ test3 ------------   ../tcc -B.. -DTCC_TARGET_X86_64 -run ../tcc.c -B.. -DTCC_TARGET_X86_64 -run ../tcc.c -B.. -DTCC_TARGET_X86_64 -run ../tcc.c -B.. -run tcctest.c > test.out3   tcc: undefined symbol 'alloca'   make[1]: *** [test3] Error 255  

需要直接从版本库中下载已经修复此错误的版本,可以下载最新的

wget       tar -zxvf f98c2306a0857ad3f8800f91e0554a27adc7f675.tar.gz      cd tinycc      ./configure --prefix=/usr  

版本库地址

我下载的文件是2012-04-18日提交的版本,命令如下:

下面我们要编辑一下Makefile文件,不然后面安装php_tcc模块时编译会无法通过

vim Makefile  

找到 ”libtcc.a: $(LIBTCC_OBJ)“ 所在行的上一行

代码应该是

$(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CFLAGS)  

将这一行的最后加上 "-fPIC”,即改为

$(CC) -o $@ -c $< $(NATIVE_DEFINES) $(CFLAGS) -fPIC  

保存退出

make  

中间可能会报 make: texi2html: Command not found

这个是生成html帮助文档的,可以忽略,需要的话可以先 texi2html 然后重新make

yum install texi2html  

没有make错误就继续执行下面命令

make test   make install  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21942.html