MySQL 8.3 Release Notes
如果 Perl 报告无法找到 ../mysql/mysql.so
模块,问题可能是 Perl 无法定位 libmysqlclient.so
共享库。你可以通过以下方法之一解决这个问题:
请注意,你可能还需要修改 -L
选项,以便链接器可以找到其他库。例如,如果链接器无法找到 libc
,因为它在 /lib
中,而链接命令指定了 -L/usr/lib
,则将 -L
选项更改为 -L/lib
,或将 -L/lib
添加到现有的链接命令中。
如果你从 DBD::mysql
中收到以下错误,你可能正在使用 gcc(或使用旧的二进制文件编译的 gcc):
/usr/bin/perl: can't resolve symbol '__moddi3'
/usr/bin/perl: can't resolve symbol '__divdi3'
在编译 mysql.so
库时,添加 -L/usr/lib/gcc-lib/... -lgcc
到链接命令中(检查 make 的输出以获取 mysql.so
的编译信息)。 -L
选项应该指定 libgcc.a
所在目录的路径名。
这个问题的另一个可能原因是 Perl 和 MySQL 都没有使用 gcc 编译。在这种情况下,你可以通过编译两者以 gcc 来解决不匹配的问题。