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.开发安装完了之后就进行开发,下面这个是一个示例程序
- #include <stdio.h>
- #include <windows.h>
- #include <mysql.h>
- #include <winsock2.h>
- int main(int argc,char *argv[])
- {
- MYSQL conn;
- int res;
- mysql_init(&conn);
- if(mysql_real_connect(&conn,"localhost","root","","test",,NULL,CLIENT_FOUND_ROWS)) //"root":数据库管理员 "":root密码 "test":数据库的名字
- {
- printf("connect success!\n");
- res=mysql_query(&conn,"insert into test values('user','123456')");
- if(res)
- {
- printf("error\n");
- }
- else
- {
- printf("OK\n");
- }
- mysql_close(&conn);
- }
- return ;
- }
要把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~\ADMINI~\LOCALS~\Temp\cc8HIzrA.o:main.cpp:(.text+0x68): undefined reference to `mysql_init@'
- C:\DOCUME~\ADMINI~\LOCALS~\Temp\cc8HIzrA.o:main.cpp:(.text+0xb1): undefined reference to `mysql_real_connect@'
- C:\DOCUME~\ADMINI~\LOCALS~\Temp\cc8HIzrA.o:main.cpp:(.text+0xdf): undefined reference to `mysql_query@'
- C:\DOCUME~\ADMINI~\LOCALS~\Temp\cc8HIzrA.o:main.cpp:(.text+0x11d): undefined reference to `mysql_close@'
- collect2.exe: error: ld returned exit status
- make: *** [main] Error
解决如下
打开libmysql.def修改对应出错的地方如
就像这样,在后面手动增加数字,然后重复上面的操作,重新用dlltool生成一次libmysql.a链接库
到这里就可以用了。
参考资料
http://www.cnblogs.com/cy163/archive/2009/10/03/1577812.html
mingw环境添加mysql开发库的更多相关文章
- linux下为已经编译好的php环境添加mysql扩展(php安装完成后如何添加mysql扩展)
问题背景 平常我们都是先安装mysql,然后才能去安装php.假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展.这时需要手动编译生成 ...
- 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)
Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...
- Linux 环境下安装 Nginx+php+mysql 开发环境
一直以来都没有养成记录学习的好习惯,我想从这么一天开始,把自己学习和工作中的经验和坑都记录下来.等到以后老的时候还有可以回忆的地方. 最近在学习linux,虽然已经玩linux很久了,但是没有怎么用心 ...
- Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试
Win7搭建nginx+php+mysql开发环境以及websocket聊天实例测试一.下载相关安装包 1.下载nginx最新版本(nginx1.3.13版之后才支持websocket协议) 下载地址 ...
- QT creator+OpenCV2.4.2+MinGW 在windows下开发环境配置
由于项目开发的原因,需要配置QT creator+OpenCV2.4.2+MinGW开发环境,现对配置方法做如下总结: 1. 下载必备软件 QT SDK for Open Source C++ de ...
- MySQL生产库开发规范
MySQL开发规范 文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 文件标识: 当前版本: V1.0 作 者: 贺磊 完成日期: 2016-05-24 变更记录 序号 ...
- ssh keygen命令实现免密码通信(git库获取操作权限:开发人员添加到git库中,获取操作权限)
先看两个机器实现免密码登陆通讯: 假设 A 为客户机器,B为目标机: 要达到的目的: A机器ssh登录B机器无需输入密码: 加密方式选 rsa|dsa均可以,默认dsa 做法: 1.登录A机器 2.s ...
- 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本
转载自今日头条 小编最近发现PHPWAMP竟然又更新了,激动之余向大家介绍一下新版的强大功能. PHPWAMP是纯绿色集成环境,高版本php无需安装VC运行库,默认已经集成VC运行库!Nginx支持服 ...
- windows+CMake+mingw 搭建c c++开发环境
layout: post title: "windows+CMake+mingw 搭建c c++开发环境" date: 2018-03-30 22:23:06 tags: wind ...
随机推荐
- Scribes:小型文本编辑器,支持远程编辑
Scribes是一款简洁的文本编辑器.现在给大家介绍下. 功能列表, Python插件扩展 支持远程编辑(如ftp, sftp, ssh, samba, webdav, webdavs) ...
- JavaScript概念梳理
一.JavaScript 的奇葩命名史 1995 年,网景浏览器(Netscape Navigator)首次发布了一种运行于浏览器端的脚本语言,网景给这个新语言命名为 LiveScript.一年后,为 ...
- 如何写UI及屏幕适配的一些技巧
总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用任何Xib, 如果不是在外包公司,也推荐大家多使用甚至完全使用纯代码布局UI ...
- 双链表实现Queue
算法导论第10章的东西,感觉用双链表真心简单,就是有点浪费空间,但是时间复杂度O(1): #include <stdio.h> struct LinkNode { LinkNode(): ...
- TCP连接建立与释放
tcp建立连接 tcp连接的建立需要经历”三次握手“的过程.过程如下 client发送SYN包(值为j)以及SEQ包到server端,此时client进入SYN_SEND状态.此为第一次握手. ser ...
- 树莓派进阶之路 (006) - 树莓派安装wiringPi
安装git-core sudo apt-get install git-core 下载winringPi库 git clone git://git.drogon.net/wiringPi 编译和安装库 ...
- 【NotePade++】NotePade++如何直接编译运行java文件
安装Notepad++和JDK(略): Notepad++的菜单栏:插件->Plugin Manager->Show Plugin Manager,Available中勾选NppExec, ...
- jquery ajax 回调函数的值alert出来[object Object] 解决方法
$("#activity_project").change(function(){ var pro=$("#activity_project").val(); ...
- C# 编写Windows Service(windows服务程序)
C# 编写Windows Service(windows服务程序) Windows Service简介: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.W ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...