在windows中将libmysql.lib与gcc或dev c ++链接起来

时间:2011-06-30 00:02:15

标签: c++ mysql mingw

我一直在尝试将mysql与c ++链接,下面是ref的代码

名为sqlfunction.cpp的文件具有以下代码,可帮助连接mysql

#include <mysql.h>
#include "rlmodbusclient.h"
#include "modbusdaemon.h"

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;

bool Opendb(char *pc,char *user, char *pass, char *db)
{

    conn = mysql_init(NULL);
   // Connect to database

   if (!mysql_real_connect(conn, pc,
   user, pass, db, 0, NULL, 0)) {
   fprintf(stderr, "%s\n", mysql_error(conn));
   return 0;
   } else return 1;

}

现在,如果上面从这样的程序文件中调用

char pc[10]="localhost",user[5]="root",pass[8]="pass",db[6]="database";

   ret = Opendb(pc,user,pass,db);
   printf("opendb_buttonevent = %d\n",ret);

这一切都很好,但唯一的是程序根本没有编译

错误是 未定义的引用mysql_init @ 4'

我找到了一个解决方案

http://www.openwebspider.org/documentation/how-to-link-libmysqllib-with-dev-c-or-gcc-under-windows/

此链接建议使用libmysql.lib运行reimp.exe

我试图运行这个,但这没有任何意义,如果有人已经做了上面然后解释如何使用reimp来解决这个问题..

感谢

就像添加我用来运行reimp的命令

C:\Documents and Settings\XPMUser\Desktop\mingwutils\bin>reimp.exe "C:\Program F
iles\MySQL\MySQL Server 5.5\lib\libmysql.lib"
reimp.exe: dlltool: No such file or directory

可以看出它说dlltool:没有这样的文件,但我发现dlltool是其中的一部分 C:\ MinGW \ bin目录......哪个没有任何意义?????

1 个答案:

答案 0 :(得分:0)

一般问题是libmysql.lib库是Microsoft特定的lib格式,mingw无法链接。似乎reimp.exe可以转换这样的库并需要dlltool这样做。它可能找不到它,因为它不在你的PATH中。尝试

设置PATH =%PATH%; C:\ MinGW \ bin reimp.exe“C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib \ libmysql.lib”

之后,您应该获得一个libmysql.a文件,该文件必须移动到mingw链接器可以找到的位置,例如你的项目目录。