Heim > Backend-Entwicklung > PHP-Tutorial > php C++扩展的开发 php c framework php c扩展 框架 php c extensio

php C++扩展的开发 php c framework php c扩展 框架 php c extensio

WBOY
Freigeben: 2016-07-29 08:53:58
Original
1220 Leute haben es durchsucht

最近两天,学习了一下PHP c++扩展的开发流程。 中间遇到不少坑,特此记录。

创建一个mongo_cpp扩展

1. 创建扩展的目录

     #cd php-5.3.6/ext
   #./ext_skel --extname=hello

2.编辑config.m4

   放开一下内容:

   PHP_ARG_ENABLE(hello, whether to enable hello support,
    Make sure that the comment is aligned:
    [  --enable-hello           Enable hello support])

    还要添加一下内容:

        PHP_REQUIRE_CXX()
        PHP_SUBST(MONGO_CPP_SHARED_LIBADD)
        PHP_ADD_LIBRARY(stdc++, 1, MONGO_CPP_SHARED_LIBADD)
        PHP_NEW_EXTENSION(mongo_cpp, mongo_cpp.cpp, $ext_shared)

3.生成configure和makefile
     #/xxxx/php/bin/phpize

     #./configure --with-php-c/local/php5/bin/php-config

4. 编辑Makefile

    修改INCLUDE和LDFLAG,还要添加除mongo_cpp.cpp外其他cpp的编辑任务,并添加到shared_objects_mongo_cpp;

    编译过程可能还需要-fPIC

5. 在php_mongo_cpp.h中使用宏声明函数

6. 在mongo_cpp.cpp中 先在入口函数中注册所有添加的函数; 再在文件最后部分添加函数的定义。

7.. sudo make  ; sudo make install;

     至此/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/下有了mongo_cpp.so

8.  如果生成mongo_cpp.so中用到了其他so(即使用的是.a,本人不理解为什么),执行前,要添加其路径到LD_LIBRARY_PATH.

9.  扩展中的一些宏函数也要查资料,此处不叙述。

以上就介绍了php C++扩展的开发,包括了p c,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage