1

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

我尝试为 mysql 客户端的 windows 上的 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 并在#include <winsock.h> /* Bug win32 */之后添加#define _mysql_h
  10. 您可以在“C:\cygwin\usr\local\mysql”中获取文件

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

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

4

2 回答 2

0

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

于 2013-07-17T18:10:22.063 回答
0

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

下载并安装适用于您的 Windows 平台(32 位或 64 位)的MySQL 连接器/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
于 2017-09-29T08:37:35.083 回答