PHP 扩展加载so 库报undefined symbol

出现这个问题的原因

  • 主要是因为没有成功的加载so库导致的

解决思路

  1. 修改config.m4文件中16-18行,打开注释
PHP_ARG_ENABLE(say, whether to enable say support,
Make sure that the comment is aligned:
[  --enable-say           Enable say support])
  1. 再config.m4文件末尾,增加共享库的配置
  PHP_ADD_LIBRARY_WITH_PATH(hello, /usr/local/lib/, SAY_SHARED_LIBADD)  //指定库名,地址,类型
  PHP_SUBST(SAY_SHARED_LIBADD) //发布为共享库
  PHP_NEW_EXTENSION(say, say.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  PHP_INSTALL_HEADERS(ext/say, [php_say.h])
  1. 重新phpize 生成configure文件.
  2. 编译configure,如果需要,则指定php-config地址
./configure --with-php-config=/usr/local/php/bin/php-config
  1. 查看makefile文件确认是否有这些


    image.png
  2. make && make install. 不报错即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。