Home > Backend Development > PHP Tutorial > Development of php C++ extension php c framework php c extension framework php c extensio

Development of php C++ extension php c framework php c extension framework php c extensio

WBOY
Release: 2016-07-29 08:53:58
Original
1225 people have browsed it

In the past two days, I have studied the development process of PHP c++ extension. I encountered a lot of pitfalls in the process, which I will record here.

Create a mongo_cpp extension

1. Create the extension’s directory

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

2. Edit config.m4

Let go of the content:

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

Also add something:

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

3. Generate configure and makefile
​​ #/xxxx/php/bin/phpize

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

4. Edit Makefile

Modify INCLUDE and LDFLAG, and add mongo_cpp. cppOther cpp editing tasks and added to shared_objects_mongo_cpp;

The compilation process may also require -fPIC

5. Used in php_mongo_cpp.h Macro declaration function

6. In mongo_cpp.cpp First register all the added functions in the entry function ; then add the function definition in the last part of the file.

7.. sudo make ; sudo make install;

So far, we have mongo_cpp.so under /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/

8. If other so is used to generate mongo_cpp.so (even if .a is used, I don’t understand why), before execution, add its path to LD_LIBRARY_PATH.

9. Extension Some macro functions also need to be checked for information, which will not be described here.
The above introduces the development of PHP C++ extension, including PC and PHP content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template