搜索
首页 电脑/网络 软件 系统软件

linux下php如何实现C?

linux下php如何实现C/C++扩展编程

全部回答

2018-04-02

45 0
    某个功能被编译到so文件中,那么如何通过php来调用它?一个方法是写一个php模块(php extension),在php中调用该模块内的函数,再通过该模块来调用so中的函数。
  下面做一个简单的例子,使用的操作系统是Fedora Core 6。 首先做一个简单的so文件: /** * hello。  c * To compile, use following commands: * gcc -O -c -fPIC -o hello。
  o hello。c * gcc -shared -o libhello。so hello。o */ int hello_add(int a, int b) { return a + b; } 然后将它编译成。
    so文件并放到系统中: $ gcc -O -c -fPIC -o hello。o hello。c $ gcc -shared -o libhello。so hello。
  o $ su # echo /usr/local/lib > /etc/ld。so。conf。  d/local。conf # cp libhello。so /usr/local/lib # /sbin/ldconfig写段小程序来验证其正确性: /** * hellotest。
  c * To compile, use following commands: * gcc -o hellotest -lhello hellotest。  c */ #include int main() { int a = 3, b = 4; printf("%d + %d = %d\n", a, b, hello_add(a,b)); return 0; } 编译并执行: $ gcc -o hellotest -lhello hellotest。
    c $ 。/hellotest 3 + 4 = 7OK, 下面我们来制作PHP模块。首先确保你安装了 php-devel 包,没有的话请自行从安装光盘上找。然后下载php源代码。
  我使用的是php-5。2。9。tar。gz,解压缩。 $ tar xzvf php-5。  2。9。tar。gz $ cd php-5。2。9/ext然后通过下面的命令建立一个名为 test 的模块。
   $ 。/ext_skel --extname=test执行该命令之后它会提示你应当用什么命令来编译模块,可惜那是将模块集成到php内部的编译方法。如果要编译成可动态加载的 php_test。
    so,方法要更为简单。 $ cd test首先编辑 config。m4 文件,去掉第16行和第18行的注释(注释符号为 dnl 。
    ) 16: PHP_ARG_ENABLE(test, whether to enable test support, 17: dnl Make sure that the comment is aligned: 18: [ --enable-test Enable test support])然后执行 phpize ()程序,生成configure脚本。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报