Maison > développement back-end > tutoriel php > php C++扩展的开发 php c framework php c扩展 框架 php c extensio

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

WBOY
Libérer: 2016-07-29 08:53:58
original
1225 Les gens l'ont consulté

最近两天,学习了一下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教程有兴趣的朋友有所帮助。

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal