编译MariaDB的lib_mysqludf_sys.so失败,求技术解决方案
解决lib_mysqludf_sys.so编译失败的方法
1. 安装缺失的依赖包
在Kali系统中,m_ctype.h属于MariaDB的开发组件,执行以下命令安装所需依赖:
sudo apt update && sudo apt install -y libmariadb-dev-compat mariadb-server-dev
2. 修正代码中的头文件包含问题
编辑lib_mysqludf_sys.c,将开头的:
#include "my_global.h" #include "my_sys.h"
替换为:
#include <mysql.h>
系统警告已明确提示,客户端代码只需包含<mysql.h>即可,它会自动引入所需的底层头文件。
3. 调整Makefile的编译参数
打开Makefile,将编译命令调整为:
gcc -Wall -fPIC -I/usr/include/mariadb -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so
添加-fPIC是为了生成与位置无关的代码,这是编译共享库的标准要求,同时简化头文件路径指向正确的MariaDB开发目录。
4. 重新编译
执行make命令重新编译,此时应能顺利生成lib_mysqludf_sys.so文件。
内容的提问来源于stack exchange,提问作者Alabama
相关产品推荐
相关产品推荐

