過去 2 日間、私は PHP C++ 拡張機能の開発プロセスを研究しました。 その過程でたくさんの落とし穴に遭遇したので、ここに記録しておきます。
mongo_cpp 拡張機能を作成します
1. 拡張機能ディレクトリを作成します
#cd php-5.3.6/ext
#./ext_skel --extname=hello
2.
コンテンツを手放します:
PHP_ARG_ENABLE(hello, hello サポートを有効にするかどうか,
コメントが整列していることを確認してください:
[ --enable-hello ] hello サポートを有効にする] )
また、何かを追加します:
PHP_REQUIRE_CXX()
PHP_SUBST(MONGO_CPP_SHARED_LIBADD)
PHP_ADD_LI BRARY(stdc++, 1, DD)
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
を編集し、mongo_cppOtherを追加します。 cpp 編集タスクとshared_objects_mongo_cppへの追加
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. 他の so を使用して mongo_cpp.so を生成する場合 (.a が使用されている場合でも、理由はわかりません)、実行前にそのパスを LD_LIBRARY_PATH.
9 に追加します。マクロ関数についても情報を確認する必要がありますが、ここでは説明しません。
上記では、PC および PHP コンテンツを含む PHP C++ 拡張機能の開発について紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。