gcc oracle mysql_[转]Windows下用GCC连接MySQL数据库
一个网友在坛子上问到的问题,说用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数据库相关推荐
- 如何在Windows下利用Apche查看MySQL数据库?
本篇文章主要跟大家介绍的是如何在Windows下利用Apche查看MySQL数据库,小杜觉得挺实在的,就整理了一下并分享给大家做个参考,希望大家看完之后有一定的收获.因此,有感兴趣的朋友记得要看完! ...
- c3p0 0.9.1.2 配套mysql_连接数据库,使用c3p0技术连接MySQL数据库
读取配置文件连接MySQL数据库 先确认已经导入了 mysql 的驱动包 db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://loc ...
- Windows下安装并使用MySQL数据库
MySQL是一款免费开源的关系型数据库,很多中小型企业开发项目都选择使用MySQL数据库,所以大家也在优先选择学习MySQL数据库. 一,安装 1.打开MySQL下载地址,MySQL官方下载地址htt ...
- Windows下cmd窗口连接mysql
mysql安装完毕后,命令窗口连接需配置path环境变量,值为mysql安装的目录/bin.如图,Windows下搜索cmd,回车 在DOS命令窗口输入 mysql -hlocalhost -uroo ...
- Windows下使用navicat连接远程数据库(带navicat安装包和pojie工具)!亲测有效!
教程 一.下载安装navicat 提取码: lf1w 二.下载oracle依赖 提取码: p4r0 三.配置OCI 四.连接oracle数据库 一.下载安装navicat navicat 安装 提取码 ...
- CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)
用qt连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...
- Windows下命令行连接mysql及导入sql文件
转自: https://www.cnblogs.com/CHEUNGKAMING/p/5709796.html 首先呢看连接本地的MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 ...
- windows下开启远程连接Mysql
1.打开dos命令界面 使用"Ctrl + R"组合键快速打开cmd窗口,并输入"cmd"命令,打开cmd窗口. 2.使用"mysql -uroot ...
- mfc连接ubuntu mysql数据库_Ubuntu 16.04 Linux系统下使用C++连接mysql数据库
Ubuntu安装mysql sudo apt-get install mysql-server,mysql-client,libmysqlclient-dev 安装的时候会提示你设置数据库的密码 安装 ...
最新文章
- Java笔记(25):设计模式概述
- AIoT五营连开惊喜活动上线!
- HTTP协议学习笔记(一)请求方法名及状态码
- Windows 10升级1909之后,很多软件不支持高分辨率而造成字体过小
- NLP数据挖掘基础知识
- mysql_query 资源标识符_借助PHP的mysql_query()函数来创建MySQL数据库的教程
- java体系技术框架_java框架之Spring 核心框架体系结构
- http状态码批量查询工具V2.0
- linux中pad命令,1.1Linux初级命令(附例子)
- 放弃微服务,构建单体应用
- 技术沙龙|实力赋能开发者,助力企业从容应对数字化转型难题
- IDEA的种种罪(Bug)
- mysql修改数据库字段数值_mysql修改数据库字段的操作
- 根据几何定义使用计算机编程求定积分的值
- 黑马JAVA知识点总结
- 差分技术:LVDS(低压差分信号)、MLVDS(多点低压差分信号)的区别与应用场景
- 游戏开发中的人工智能(五):以势函数实现移动
- Google学术搜索 学术论文搜索的利器
- nextjs 使用備忘
- 华为od统一考试B卷【最少面试官数】Python 实现
热门文章
- tomcat内存优化
- 购物车及商品php代码_简单的php购物车代码
- 普通的Spring Web项目正常启动,在访问某些JSP页面时,页面会报错 http://java.sun.com/jsp/jstl/core
- php 自减函数,Thinkphp中某个字段值从增或自减函数
- 在java中如何输入角度_在Java中以特定角度绘制一条线
- python有两个运行程序分别是什么_运行python程序的两种方式
- js如何将跨域打开的窗口放到最前面_程序员的强迫症-便捷打开常用网站
- java中使用QBC的好处_使用QBC的方式应用多对多关系中的查询
- android gridview 数据绑定,Android GridView数据绑定
- 华为杯数学建模2020什么时候出结果_关于东北三省数学建模联赛及“华为杯”研究生数学建模竞赛的通知...