Visual Studio 2015编译64位MySQL Connector/C++

由于目前官方发布的MySQL-connector-c++还只能支持vs2008,要在vs2013、vs2015项目中使用,只能自己编译一份啦,下面是自己摸索出的只用vs2015编译的方法,另后面附上一篇CMake+VS编译的方法,做个记录吧。

只用VS2010编译mysql-connector-c++

 0 准备:

 1)安装mysql服务器
 2)安装boost库
 3)下载并解压mysql-connector-c++-noinstall-1.1.7(http://www.mysql.com/downloads/connector/cpp/)(windows)

4)下载并解压mysql-connector-c++-1.1.7(http://www.mysql.com/downloads/connector/cpp/)(source code)
 5)下载并解压mysql-connector-c++源码备用,以下简称“源码”
 
 1 新建项目
 打开VS2015,新建Win32 DLL项目“mysqlconn”,选择“Empty project”
 
 2 拷贝必要文件
 1)将源码中的driver文件夹拷贝到项目文件夹mysqlconn中,
 2)在项目文件夹mysqlconn中新建include目录,这里需要放两个文件夹:
    a)将mysql-connector-c++ noinstall目录中的cppconn文件夹拷贝至include中
    b)新建一个mysql文件夹,并将mysql服务安装目录下的include文件夹中的头文件拷贝至其中(C:\Program Files\MySQL\MySQL Server 5.7\include)

    c)其中driver\nativeapi\binding_config.h.cm重命名为binding_config.h,将cmakedefine相关的代码注释,将之后的win32定义打开

version_info.h.cmake--->version_info.h

修改内容

#define MYCPPCONN_MAJOR_VERSION 1
#define MYCPPCONN_MINOR_VERSION 1
#define MYCPPCONN_PATCH_VERSION 7
#define SETUP_VERSION         "1.01.0007"
#define DRIVER_VERSION        "0" SETUP_VERSION
#define MYCPPCONN_VERSION        1010007

修改mysql_client_api.cpp

#ifdef MYSQLCLIENT_STATIC_BINDING
# include "libmysql_static_proxy.h"
#else
# include "libmysql_dynamic_proxy.h"
#endif


 3)在项目文件夹mysqlconn中新建lib目录并将安装目录(C:\Program Files\MySQL\MySQL Connector.C 6.1\lib)libmysql.lib拷贝指其中
 
 3 添加必要文件到项目
 1)将mysqlconn中driver目录下的.h和.cpp文件加入项目(先不加子文件夹nativeapi中的文件):
 项目右键->Add->New Filter,命名为“Driver”,“Driver”右键->Add->Existing Item,
 找到并选中driver文件夹下的.h和.cpp文件,加入过滤器Driver中
 
 2)再新建Native过滤器,加入driver\native中的cpp文件,注意“libmysql_dynamic_proxy.cpp”和“libmysql_static_proxy.cpp”一定不要添加,否则会出一堆错误“error LNK2005”
 

driver\nativeapi/mysql_private_iface.h(48): note: 参见“snprintf”的前一个定义

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

#if ( defined(_WIN32) || defined(_WIN64) ) && !defined(snprintf)
#if _MSC_VER<1900
#define snprintf _snprintf
#endif
#endif

 4 设置项目属性
 1)C/C++增加“附加包含目录”:
  mysqlconn下的include
  mysqlconn下的include下的cppconn
  mysqlconn下的include下的mysql
  boost目录
 
 2)设置预处理器定义:
 WIN32;_DEBUG;_LIB;mysqlcppconn_EXPORTS
 
 3)设置链接器
 添加“附加包含目录”:mysqlconn下的lib文件夹($(SolutionDir)\lib)
 添加“附加依赖项”:libmysql.lib
 
 5 编译

 生成的mysqlconn.lib 和 mysqlconn.dll就可以用在vs2015项目中了


你可能感兴趣的:(c++,c++11,mysql)