mingw环境添加mysql开发库

  今天碰巧要用到mysql进行开发,在windows的mingw平台。

0.下载mysql

  http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-noinstall-5.1.73-win32.zip

  下载这个绿色版的。然后解压到D盘下,复制一份ini配置文件,修改部分选项,并启动服务,详细看我以前的博客

  http://www.cnblogs.com/wunaozai/p/3641589.html

1.开发安装完了之后就进行开发,下面这个是一个示例程序

 1 #include <stdio.h>

 2 #include <windows.h>

 3 #include <mysql.h>

 4 #include <winsock2.h>

 5 

 6 int main(int argc,char *argv[])

 7 {

 8     MYSQL conn;

 9     int res;

10     mysql_init(&conn);

11     if(mysql_real_connect(&conn,"localhost","root","","test",0,NULL,CLIENT_FOUND_ROWS)) //"root":数据库管理员 "":root密码 "test":数据库的名字

12     {

13         printf("connect success!\n");

14         res=mysql_query(&conn,"insert into test values('user','123456')");

15         if(res)

16         {

17             printf("error\n");

18         }

19         else

20         {

21             printf("OK\n");

22         }

23         mysql_close(&conn);

24     }

25     return 0;

26 }

  要把mysql安装程序中的include复制到开发环境中。然后还有构造一个libmysql.a这种静态链接库。
  官方mysql的win发行版是由vc编译,产生的lib无法被mingw链接。链接时会抛出未定义错。

  具体的办法如下 在include文件夹中复制 libmysql.def 到 lib目录,在lib目录执行下面这句

  dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k  (dlltool 工具是mingw自带)

  此时会生成一个libmysql.a文件。然后把这个文件复制到开发环境中,就基本是可以了。

  我们弄好了这些后就编译一下,

  g++ main.cpp -o main.exe -Iinclude -L. -lws2_32 -lmysql 

  居然会出现这种错误

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\cc8HIzrA.o:main.cpp:(.text+0x68): undefined reference to `mysql_init@4'

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\cc8HIzrA.o:main.cpp:(.text+0xb1): undefined reference to `mysql_real_connect@32'

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\cc8HIzrA.o:main.cpp:(.text+0xdf): undefined reference to `mysql_query@8'

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\cc8HIzrA.o:main.cpp:(.text+0x11d): undefined reference to `mysql_close@4'

collect2.exe: error: ld returned 1 exit status

make: *** [main] Error 1

  解决如下
  打开libmysql.def修改对应出错的地方如

  就像这样,在后面手动增加数字,然后重复上面的操作,重新用dlltool生成一次libmysql.a链接库

  到这里就可以用了。

 

 

参考资料

http://www.cnblogs.com/cy163/archive/2009/10/03/1577812.html

 

你可能感兴趣的:(mysql)