vs2015编译mysql c++ connector
目前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
其中:
- Win64非常重要,否则生成的就是x86的解决方案。
- -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
其中:
- -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的更多相关文章
- 编译和使用 MySQL C++ Connector
记录编译 mysql C and C++ connector 和简单访问数据库. 环境: vs2012, mysql 5.6.13, 基于x64 0. 软件包 mysql http://dev.my ...
- 用VS2015编译sqlcipher
简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...
- vs2015配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题
vs2015连接mysql数据库常见问题 最近在vs2015用asp.net开发一个网站,要连接mysql数据库,于是百度了一下相关配置的文章,有好几篇文章说了相关步骤,但是我装的时候还是遇到了问题, ...
- Linux下MySQL c++ connector示例
最近在学习数据库的内容,起先是在windows下用mysql c++ connector进行编程,之所以选用c++而不是c的api,主要是考虑到c++ connector是按照JDBC的api进行实现 ...
- VS2015编译boost1.62
VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...
- VS2015编译Qt5.7.0生成支持XP的静态库(很不错)
一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...
- mysql ODBC connector相关问题
mysql ODBC connector我安装了,怎么就不成功了 进到命令行,运行下边的:C:\>cd \windows\SysWOW64 C:\Windows\SysWOW64>odbc ...
- 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题
问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available ...
- 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 ...
随机推荐
- PowerDesigner中逆向工程将数据库中comment赋值到name
'------------------------------------------------------------ ' '脚本功能: ' PowerDesigner中逆向工程完成后,将数据库中 ...
- scroll、scrollBy和 scrollTo三种方法定位滚动条位置
在默认情况下,页面加载完后默认滚动在最顶端,有些时候我们需要在页面打开后,定位滚动条的位置,比如,横向和纵向滚动条居中,实现页面滚动的方法有三种:scroll.scrollBy和 scrollTo,三 ...
- php报错 Call to undefined function mb_stripos()
错误原因 没有mbstring扩展 本文只介绍Linux解决办法 方法一 编译PHP的时候 带上--enable-mbstring参数 方法二 进入PHP源码/ext/mbstring目录 ./con ...
- 离线dfs CF div2 707 D
http://codeforces.com/contest/707/problem/D 先说一下离线和在线:在线的意思就是每一个询问单独处理复杂度O(多少多少),离线是指将所有的可能的询问先一次都处理 ...
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
Hibernate API简介 其接口分为以下几类: l 提供访问数据库的操作的接口: l 用于配置Hibernate的接口: l 回调接口 l ...
- 细菌(disease)
细菌(disease) 题目描述 近期,农场出现了D(1≤D≤15)种细菌.John要从他的N(1≤N≤1000)头奶牛中尽可能多地选些产奶,但是如果选中的奶牛携带了超过K(1≤K≤D)种不同细菌,所 ...
- Android开发之InstanceState详解(转)---利用其保存Activity状态
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- npm install含义 及vue安装启动项目时报错解决及vue建项目时各文件间的依赖关系
全局安装vue-cli,使用命令npm install -g vue-cli. 下载模板代码,使用命令vue init webpack my-project,之后会有一些询问,按需填写即可. 最后会看 ...
- Python+Selenium使用Page Object实现页面自动化测试
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...
- PAT (Advanced Level) 1029. Median (25)
scanf读入居然会超时...用了一下输入挂才AC... #include<cstdio> #include<cstring> #include<cmath> #i ...