找回密码
 新建账号

php undefined symbol: sqlite3_libversion

[复制链接]
php 发表于 2024/9/20 02:51 | 显示全部楼层 |阅读模式
php: symbol lookup error: lib/php/extensions/no-debug-non-zts-20151012/pdo_sqlite.so: undefined symbol: sqlite3_libversion
编译 php 时使用了以下参数 将 sqlite3 和 pdo_sqlite 扩展编译成了动态链接库

  1. --with-sqlite3=shared --with-pdo-sqlite=shared
复制代码
然后在 php.ini 中加载扩展
  1. extension = sqlite3.so
  2. extension = pdo_sqlite.so
复制代码
然后就触发了 php pdo_sqlite.so: undefined symbol: sqlite3_libversion 的错误。
解决办法一,不使用 pdo_sqlite 扩展,将
  1. extension = pdo_sqlite.so
复制代码
改为
  1. ;extension = pdo_sqlite.so
复制代码
或直接删除这一行。这种办法治标不治本。
解决办法二,重新编译 php,静态编译 php 的 sqlite3 和 pdo_sqlite 扩展。
  1. --with-pdo-sqlite --with-sqlite3
复制代码
以上只展示和 sqlite 有关的编译参数,其它编译参数请自行处理。需要注意的是,静态编译 php 扩展后,不会生成扩展的动态链接库文件,需要将 php.ini 中的相关配置删除掉,否则会因为找不到文件而报错。
  1. extension = sqlite3.so
  2. extension = pdo_sqlite.so
复制代码
在 windows 上,php 扩展动态链接库文件的后缀名是 .dll,在 Linux 上文件的后缀名是 .so。

手机版|轻松E站

GMT+8, 2024/10/7 17:00

快速回复 返回顶部 返回列表