mysql - 如何在 Windows 中编译 MySQL 示例插件

标签 mysql windows mysql-5.6 plugins

我需要在 Windows 中编译全​​文解析器插件,但即使使用原始 MySQL 源示例,我也无法对其进行打点。 MySQL 服务器版本是 5.6 x64。使用 gcc,我尝试了以下变体:

 gcc -shared -Wall -g -o "plugin_example.dll" -fPIC "plugin_example.c" -DMYSQL_DYNAMIC_PLUGIN -lmysqlservices

但是当我尝试安装它时

 INSTALL PLUGIN simple_parser SONAME 'plugin_example.dll'

我收到以下错误

 Can't open shared library '... plugin_example.dll' (errno: 193 )

使用 Dev-C 及其(剥离的 -L 库)

gcc.exe -c projekt3.c -o projekt3.o -DMYSQL_DYNAMIC_PLUGIN -DBUILDING_DLL=1
dllwrap.exe --output-def libProjekt3.def --implib libProjekt3.a projekt3.o  -static-libgcc -lmysqlservices --no-export-all-symbols --add-stdcall-alias -o Projekt3.dll

我得到了 250K DLL 并且

Can't find symbol '_mysql_plugin_interface_version_' in library

用谷歌搜索五天的试错结果毫无结果。任何帮助将不胜感激。

最佳答案

errno 193 表示文件格式错误。
您的 64 位 MySQL 和 .dll 之间可能存在不一致。 Google 的大多数页面都在讨论不兼容的 32 位和 64 位 Java 版本。
因此,我建议尝试使用 32 位 MySQL,编译 64 位插件,或者检查安装例程是否对 64 位或 32 位有一些假设?

关于mysql - 如何在 Windows 中编译 MySQL 示例插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21352080/

相关文章:

mysql - 获取mysql中查询结果的最高值

mysql - codeigniter链查询关键字问题

c - 如何将参数传递给 DLL 初始化(例如,通过 LoadLibrary 加载时)?

windows - 如何使用 Win32 API 与 com 端口 (RS232) 通信

python - 读取任何 PC 兼容的赛车方向盘输入

mysql - 在 MySQL 5.6 中重置 ROOT 密码

MySql:为存档引擎创建表,强制 auto_increment

mysql 查询 - 重复数字对

mysql - 计算 MySQL 5.6 中重叠日期范围的最大数量

php - mysql---留言数据库如何设计?