目前MySQL Connector/C++的binary版本最高只支持VS2008,VS2015需要下载源码自行编译。

1.CMAKE

官网下载最新的稳定版本

把bin目录添加到环境变量PATH中

2.Boost

同样到官网下载最新的稳定版本,可以下载编译好的的版本

3.MySQL客户端库

MySQL客户端库头文件在MySQL目录下的include目录中,可以下载mysql的windows版本zip安装包,只解压不安装。

4.下载MySQL connector/C++源码

http://dev.mysql.com/downloads/connector/cpp/

在“select platform”中选择“Source Code”下载解压

5.生成VS解决方案文件

(1)x64

开启一个cmd窗口(管理员权限),进入解压出来的MySQL Connector根目录

执行

cmake -G "Visual Studio 14 2015 Win64" -DBOOST_ROOT:STRING=BOOST_X64_DIR -DMYSQL_DIR:STRING=MYSQL_X64_DIR

其中:

  1. Win64非常重要,否则生成的就是x86的解决方案。
  2. -DBOOST_ROOT:STRING声明boost库的根目录,-DMYSQL_DIR:STRING声明mysql的安装路径,根据自己的配置设置BOOST_X64_DIR和MYSQL_X64_DIR。

 (2)X32

开启一个cmd窗口(管理员权限),进入解压出来的MySQL Connector根目录

执行

cmake -G "Visual Studio 14 2015" -DBOOST_ROOT:STRING=BOOST_X32_DIR -DMYSQL_DIR:STRING=MYSQL_X32_DIR

其中:

  1. -DBOOST_ROOT:STRING声明boost库的根目录,-DMYSQL_DIR:STRING声明mysql的安装路径,根据自己的配置设置BOOST_X32_DIR和MYSQL_X32_DIR。

6.编译MySQL Connector

在MySQL Connector根目录,可以看到生成的.sln文件,双击打开可以看到几十个工程文件,除了库还包括例子、测试等

在“解决方案资源管理器”窗口,找到 mysqlcppconn工程,右击,选择“生成”

失败……

(1) 发现结构体timespec重定义,找到头文件my_global.h,在其开头加入

#define HAVE_STRUCT_TIMESPEC

(2)在“输出”窗口,选择输出来源为“生成”,CTRF+F,搜索“error”,可以看到

>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\stdio.h(1927): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration

其前一行是

2>  d:\bin\mysql-connector-c++-1.1.6\driver\nativeapi/mysql_private_iface.h(48): note: 参见“snprintf”的前一个定义

双击这一行,定位到mysql_private_iface.h的48行,注释掉

//#if ( defined(_WIN32) || defined(_WIN64) ) && !defined(snprintf)
//#define snprintf _snprintf
//#endif

在“输出”窗口,选择输出来源为“生成”,点击“全部消除”,再次生成工程

(3)失败……又一次,再看生成信息,同样的问题

再次双击定位到m_config.h的516行,注释之

//#define snprintf _snprintf

7.附上编译之后x32版本的连接库下载地址

  百度云

8.感谢

  参考了 谢小军 的 csdn博客,感谢!

vs2015编译mysql c++ connector的更多相关文章

  1. 编译和使用 MySQL C++ Connector

    记录编译 mysql C and C++ connector 和简单访问数据库. 环境: vs2012,  mysql 5.6.13, 基于x64 0. 软件包 mysql http://dev.my ...

  2. 用VS2015编译sqlcipher

    简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...

  3. vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题

    vs2015连接mysql数据库常见问题 最近在vs2015用asp.net开发一个网站,要连接mysql数据库,于是百度了一下相关配置的文章,有好几篇文章说了相关步骤,但是我装的时候还是遇到了问题, ...

  4. Linux下MySQL c++ connector示例

    最近在学习数据库的内容,起先是在windows下用mysql c++ connector进行编程,之所以选用c++而不是c的api,主要是考虑到c++ connector是按照JDBC的api进行实现 ...

  5. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  6. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  7. mysql ODBC connector相关问题

    mysql ODBC connector我安装了,怎么就不成功了 进到命令行,运行下边的:C:\>cd \windows\SysWOW64 C:\Windows\SysWOW64>odbc ...

  8. 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题

    问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available ...

  9. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

随机推荐

  1. android 5.1 API简介

    android 5.1介绍: http://developer.android.com/about/versions/android-5.1.html?utm_campaign=lollipop-51 ...

  2. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  3. jq中的移除事件

    unbind([type],[data]); 第一个参数是事件类型,第二个参数是将要移出的函数 说明: 1,如果没有参数,则删除所有绑定的事件 2,如果只提供了事件类型作为参数,则只删除该类型的绑定事 ...

  4. MySQL架构优化:定时计划任务与表分区

    转自: MySQL架构优化实战系列3:定时计划任务与表分区 - 今日头条(TouTiao.com)http://toutiao.com/a6304736482361049345/?tt_from=mo ...

  5. 很好的一个dp题目 Codeforces Round #326 (Div. 2) D dp

    http://codeforces.com/contest/588/problem/D 感觉吧,这道题让我做,我应该是不会做的... 题目大意:给出n,L,K.表示数组的长度为n,数组b的长度为L,定 ...

  6. 转:检查点(web_reg_find函数详解)

    LR检查点 设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,因此建议所有的测试脚本中都添加检查点设置 一.设置检查点的方法 1.将脚本切换到树 ...

  7. 微信小程序登陆流程

    #1:session_key和openId是什么?session_key 官方说明为:session_key是微信服务器生成的针对用户数据进行加密签名的密钥session_key的用途(1)对wx.g ...

  8. panel的autoscroll属性不起作用

    已经设置panel的autoscroll属性为true,而且panel内 的控件也达到了应该滚动的地步,但是就是不见滚动条.这是为什么呢? 原因就是richtextbox的anchor属性设置了bot ...

  9. PAT (Advanced Level) 1084. Broken Keyboard (20)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  10. input限定文件上传类型:Microsoft Office MIME types

    <input id = " " name = " " type = " file " accept=" ? ? ? &quo ...