一个网友在坛子上问到的问题,说用MinGW GCC编译运行一个连接MySQL数据库的程序时遇到错误:

undefined reference to `mysql_init@4'

undefined reference to `mysql_real_connect@32'

undefined reference to `mysql_close@4'

我遂去MySQL官网下了个最新的Windows C Connector,然后按正常思路写了个最简单的连接测试程序,果然出现了同样的错误。

后来在网上查了下,也看了下Mysql官网上别人的讨论,据称MySQL官方下载的Windows C开发包只能原生态支持CL编译器,而用GCC也并非不可,只是需要做一些额外的工作。先将后来试验成功的步骤笔记于此,主要参考有http://dev.mysql.com/doc/refman/5.0/en/windows-client-compiling.html。

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

解压,将此工具包中的bin目录加入系统环境变量的Path变量。

在Mysql开发包的lib目录下,即libmysql.lib和libmysql.dll的所在目录,运行

reimp -d libmysql.lib

得到导出文件LIBMYSQL.def,

然后在此目录运行MinGW GCC本身自带的命令

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

得到我们最后需要链接的库文件libmysql.a。

在Mysql开发包的目录下(即与include和lib同级)新建我们的测试文件main.c,测试源码如下:

#include #include#include"mysql.h"

intmain()

{

MYSQL mysql;

mysql_init(&mysql);if(!mysql_real_connect(&mysql, "localhost", "root", "admin", "demo", 3306, NULL, 0))

{

printf("/nconnect error!");

}else{

printf("/nconnect success!/n");

}

mysql_close(&mysql);return 0;

}

在源文件所在路径运行编译命令:

gcc -Iinclude -Llib main.c -llibmysql

即编译成功。数据库亦连接成功。

测试环境:

操作系统:Windows XP Prefessional sp2

数据库版本:MySQL-5.0.22-community-nt

连接器版本:mysql-connector-c-noinstall-6.0.2-win32

编译器:GCC for windows 4.5.0

gcc oracle mysql_[转]Windows下用GCC连接MySQL数据库相关推荐

  1. 如何在Windows下利用Apche查看MySQL数据库?

    本篇文章主要跟大家介绍的是如何在Windows下利用Apche查看MySQL数据库,小杜觉得挺实在的,就整理了一下并分享给大家做个参考,希望大家看完之后有一定的收获.因此,有感兴趣的朋友记得要看完! ...

  2. c3p0 0.9.1.2 配套mysql_连接数据库,使用c3p0技术连接MySQL数据库

    读取配置文件连接MySQL数据库 先确认已经导入了 mysql 的驱动包 db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://loc ...

  3. Windows下安装并使用MySQL数据库

    MySQL是一款免费开源的关系型数据库,很多中小型企业开发项目都选择使用MySQL数据库,所以大家也在优先选择学习MySQL数据库. 一,安装 1.打开MySQL下载地址,MySQL官方下载地址htt ...

  4. Windows下cmd窗口连接mysql

    mysql安装完毕后,命令窗口连接需配置path环境变量,值为mysql安装的目录/bin.如图,Windows下搜索cmd,回车 在DOS命令窗口输入 mysql -hlocalhost -uroo ...

  5. Windows下使用navicat连接远程数据库(带navicat安装包和pojie工具)!亲测有效!

    教程 一.下载安装navicat 提取码: lf1w 二.下载oracle依赖 提取码: p4r0 三.配置OCI 四.连接oracle数据库 一.下载安装navicat navicat 安装 提取码 ...

  6. CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)

    用qt连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...

  7. Windows下命令行连接mysql及导入sql文件

    转自: https://www.cnblogs.com/CHEUNGKAMING/p/5709796.html 首先呢看连接本地的MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 ...

  8. windows下开启远程连接Mysql

    1.打开dos命令界面 使用"Ctrl + R"组合键快速打开cmd窗口,并输入"cmd"命令,打开cmd窗口. 2.使用"mysql -uroot ...

  9. mfc连接ubuntu mysql数据库_Ubuntu 16.04 Linux系统下使用C++连接mysql数据库

    Ubuntu安装mysql sudo apt-get install mysql-server,mysql-client,libmysqlclient-dev 安装的时候会提示你设置数据库的密码 安装 ...

最新文章

  1. Java笔记(25):设计模式概述
  2. AIoT五营连开惊喜活动上线!
  3. HTTP协议学习笔记(一)请求方法名及状态码
  4. Windows 10升级1909之后,很多软件不支持高分辨率而造成字体过小
  5. NLP数据挖掘基础知识
  6. mysql_query 资源标识符_借助PHP的mysql_query()函数来创建MySQL数据库的教程
  7. java体系技术框架_java框架之Spring 核心框架体系结构
  8. http状态码批量查询工具V2.0
  9. linux中pad命令,1.1Linux初级命令(附例子)
  10. 放弃微服务,构建单体应用
  11. 技术沙龙|实力赋能开发者,助力企业从容应对数字化转型难题
  12. IDEA的种种罪(Bug)
  13. mysql修改数据库字段数值_mysql修改数据库字段的操作
  14. 根据几何定义使用计算机编程求定积分的值
  15. 黑马JAVA知识点总结
  16. 差分技术:LVDS(低压差分信号)、MLVDS(多点低压差分信号)的区别与应用场景
  17. 游戏开发中的人工智能(五):以势函数实现移动
  18. Google学术搜索 学术论文搜索的利器
  19. nextjs 使用備忘
  20. 华为od统一考试B卷【最少面试官数】Python 实现

热门文章

  1. tomcat内存优化
  2. 购物车及商品php代码_简单的php购物车代码
  3. 普通的Spring Web项目正常启动,在访问某些JSP页面时,页面会报错 http://java.sun.com/jsp/jstl/core
  4. php 自减函数,Thinkphp中某个字段值从增或自减函数
  5. 在java中如何输入角度_在Java中以特定角度绘制一条线
  6. python有两个运行程序分别是什么_运行python程序的两种方式
  7. js如何将跨域打开的窗口放到最前面_程序员的强迫症-便捷打开常用网站
  8. java中使用QBC的好处_使用QBC的方式应用多对多关系中的查询
  9. android gridview 数据绑定,Android GridView数据绑定
  10. 华为杯数学建模2020什么时候出结果_关于东北三省数学建模联赛及“华为杯”研究生数学建模竞赛的通知...