PHP的C扩展 makefile的修改

来源:互联网 发布:端口聚合是什么意思 编辑:程序博客网 时间:2024/06/06 03:11

首先关于如何生成PHP的C扩展可以参考http://blog.csdn.net/oyd/article/details/3168417这里的文章。我所补充的是关于makefile的修改问题

比如使用了./ext_skel --extname=hello生成了hello.c,这里当然可以选择把所有函数都放进hello.c中,但是要是工程有点大就不科学了。

那么如果我写了一个add.c的文件需要加进这个工程来,并最后和hello.c一起生成hello.so需要怎么做呢?

打开makefile(文中涉及到的路径会因为PHP安装时的路径和用户名的不同而不同,需要自己根据实际情况修改)

1.如果add.c调用了mysql的函数,那么在 INCLUDE = -I/usr/local/php/include/php -I/usr/local/php/include/php/mail……… -I/usr/local/php/include/php/ext/date/lib 的后面新增 -I/usr/local/mysql/include/mysql

2.shared_objects_add = hello.lo后面新增 add.lo

3.在hello.lo: /home/wzb/hello/hello.c之前新增,

add.lo: /home/wzb/hello/add.c

$(LIBTOOL) --mode=compile $(CC)  -I. -I/home/wzb/add  $(COMMON_FLAGS)  $(CFLAGS_CLEAN)  $(EXTRA_CFLAGS)  -c /home/wzb/add.c -o add.lo

这样makefile的小改造就算完成了。