Windows下使用dev-cpp连接mysql数据库

13 篇文章 0 订阅
10 篇文章 0 订阅

   今天试了下用C语言连接数据库,因为是第一次操作,所以也有诸多不懂的地方,在网上查找了诸多资料,终于成功连接了,所以在这里分享给大家,因为笔者也是第一次使用,所以本文讲的并不是很深入,望各位谅解。

   由于编译运行环境是MinGW GCC,一开始写了一个简单的程序连接MySQL数据库的时候,遇到了一堆错误:

undefined reference to `mysql_init@4'
undefined reference to `mysql_real_connect@32'
undefined reference to `mysql_close@4'

显然是缺少库文件,在连接的时候找不到符号,确定不了地址,所以会出现undefined reference to 'xxx'的错误。

上网查了一下发现是少了一个  “libmsql.a”的静态连接库。需要我们自己编译下 C:\Program Files\MySQL\MySQL Server 5.6\lib 下的 libmysql.lib 文件

先下载一下MinGW工具包,下载地址是http://prdownloads.sourceforge.net/mingw/mingw-utils-0.2.tar.gz?download

解压后,将bin目录添加到系统的Path环境变量里面,

在C:\Program Files\MySQL\MySQL Server 5.6\lib 运行命令行,运行

reimp -d libmysql.lib

会得到一个 libmysql.def 的文件,然后在再执行下面这条命令

dlltool -k -d libmysql.def -l libmysql.a 

就会生成我们需要的静态库文件。将这个文件添加到Dev-CPP的安装目录下的lib文件夹里面,

同时将C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.dll 这个文件放到C:\Windows\Systm32(32位)或者C:\Windows\SysWOW64 (64位)就可以了。


在MySQL的开发包目录下(与include和lib同级)新建一个test.cpp 的文件,测试的源码如下

#include <stdio.h>  
#include <winsock2.h>  
#include "mysql.h"  
int main()  
{  
    MYSQL mysql;  
    mysql_init(&mysql);  
    if(!mysql_real_connect(&mysql, "localhost", "root", "password", "db", 3306, NULL, 0))  
    {  
        printf("\nconnect error!");  
    }  
    else  
    {  
        printf("\nconnect success!\n");  
    }  
    mysql_close(&mysql);  
    return 0;  
}  

在Dev-CPP的任务栏的工具--编译选项--编译器--在连接器命令行加入以下命令-- -lmysql。

即编译运行成功!

文中若有何问题,敬请各位不吝指正!




  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值