Windows下使用dev-cpp连接mysql数据库
Dev-Cpp
A fast, portable, simple, and free C/C++ IDE
项目地址:https://gitcode.com/gh_mirrors/de/Dev-Cpp
免费下载资源
·
今天试了下用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。
即编译运行成功!
文中若有何问题,敬请各位不吝指正!
GitHub 加速计划 / de / Dev-Cpp
2.48 K
269
下载
A fast, portable, simple, and free C/C++ IDE
最近提交(Master分支:3 个月前 )
882c2376
Update language files 4 个月前
0c248ea0
Lang=Japanese (日本語) // Please see issue Embarcadero#297
Same number of items as English.lng. 5 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)