【问题标题】:mysqlclient with mingw带有mingw的mysqlclient
【发布时间】:2011-09-05 00:25:10
【问题描述】:

我想在通过 mingw 交叉编译到 Windows 的项目上使用 libmysqlclient。 为了链接我的程序,我需要“mysqlclient.a”,但我无法获得它。

我尝试在 windows 上为 mysql 客户端创建 mingw 的 makefile,但配置步骤失败。


我终于能够构建它...在 Windows 上使用 mingw。

步骤如下:

  1. 安装cygwin
  2. 在你的 cygwin 中安装包 make、gcc、g++、cmake 和 cygidn
  3. 下载并解压 libmysql 源代码
  4. 编辑文件 strings/dtoa.c 并将所有出现的 dtoa 替换为 _dtoa 之类的其他内容,以防止冲突
  5. cd 到软件包库
  6. 在 mingw 中输入 cmake -G "Unix Makefiles"
  7. 制作
  8. 进行安装
  9. 编辑 C:\cygwin\usr\local\mysql\include\mysql.h 并在#define _mysql_h 之后添加#include <winsock.h> /* Bug win32 */
  10. 您可以在“C:\cygwin\usr\local\mysql”中获取文件

我得到“libmysqlclient.a”和“liblibmysql.dll.a”并将我的程序与它们链接,但我仍然得到链接器错误。怎么了 ? 但我仍然遇到链接错误!

strings libmysqlclient.a | grep _mysql_ping 返回一个结果,而链接器抱怨未定义对 `_mysql_ping@4' 的引用

【问题讨论】:

    标签: cmake mingw libmysql


    【解决方案1】:

    MinGW 和 Cygwin 通常不兼容。您必须在 100% MinGW 环境中构建 MySQL 客户端。

    【讨论】:

    • 你能比“经常”更精确吗?
    【解决方案2】:

    对于 MinGW,我们鼓励您使用 Windows *.lib 文件。

    为您的 Windows 平台(32 位或 64 位)下载并安装 MySQL Connector/C 二进制文件

    然后相应地编译和链接你的程序:

    g++ myprog.cpp \
    -I"C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" \
    -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -lmysql
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多