我一直在尝试将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目录......哪个没有任何意义?????
答案 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链接器可以找到的位置,例如你的项目目录。