3
A
回答
11
如果你的C擴展代碼使用共享庫,需要聲明的是,在config.m4
文件。
我強烈建議使用隨機配備的PHP源ext_skel
腳本生成一個骨架的config.m4:
./ext_skel --extname=myextension
既然你鏈接到庫中,按照慣例,你應該使用所述--with-myextension
選項(相對於--enable-myextension
)。取消註釋config.m4中的相關行並填寫lib的詳細信息。
類似以下內容:
# --with-myextension -> check for lib and symbol presence
LIBNAME=the_lib_your_extension_needs # you may want to change this
LIBSYMBOL=some_symbol_in_the_lib_you_extension_needs # you most likely want to change this
PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
[
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MYEXTENSION_DIR/lib, MYEXTENSION_SHARED_LIBADD)
AC_DEFINE(HAVE_MYEXTENSIONLIB,1,[ ])
],[
AC_MSG_ERROR([wrong $LIBNAME lib version or lib not found])
],[
-L$MYEXTENSION_DIR/lib -ldl
])
然後構建它,運行:
phpize
./configure --with-myextension
make
最後,你需要你的模塊(或ln -s
)複製到任何地方你的系統能夠找到它。
如果所有的工作,然後php -m
應該包括在列表中的模塊。
不幸的是,我從來沒有找到一個很好的在線參考PHP的config.m4命令 - 這本書是Sara Golemon's Extending and Embedding PHP,也是George Schlossnagle's Advanced PHP Programming的一部分。
有一個合理的新手引導到由薩拉·戈爾曼here創建PHP擴展,但對於肉類,你真的需要她的書。
相關問題
- 1. PHP鏈接沒有擴展
- 2. 創建一個擴展另一個PHP擴展的PHP擴展?
- 3. 將Python擴展(.pyd)動態鏈接到另一個擴展
- 4. 使用jQuery擴展鏈接
- 5. HREF鏈接擴展
- 6. 鏈接numpy擴展
- 7. C++擴展PHP
- 8. C++ PHP擴展
- 9. 鏈接到chrome://擴展頁面,非擴展名HTML
- 10. C#中的鏈接擴展方法
- 11. C#擴展面板
- 12. C++類的PHP擴展裏面
- 13. 用java/C++擴展php嗎?
- 14. 使用C++的PHP擴展
- 15. route.MapPageRoute一個頁面,擴展
- 16. 從動態href鏈接鏈接到另一個php頁面php
- 17. PHP - 帶有擴展/未擴展鏈接正則表達式用於重寫
- 18. Ruby擴展鏈接錯誤
- 19. Chrome擴展:鏈接收集
- 20. TFS 2010鏈接擴展性
- 21. 在鏈接到MediaWiki擴展
- 22. 鏈接到MediaWiki擴展:
- 23. ExpandableListView centains鏈接不擴展
- 24. 躲在鏈接.html擴展
- 25. MediaWiki本地擴展鏈接
- 26. C中的PHP擴展:您能否從另一個單獨的擴展中繼承一個擴展中的類?
- 27. Bootsrap在一個鏈接上展開,並加上另一個頁面的鏈接
- 28. php鏈接到另一個頁面
- 29. 擴展點引用另一個擴展
- 30. Safari擴展 - 證書