Hello World

行走即是圆梦,回望亦是前行。

0%

cmake生成mysql-connector-c++ vs工程

前言

这里简单记录下cmake生成mysql-connector-c++的vs工程项目

参考博客

环境

windows10 + vs2013-x86

准备

mysql下载地址

  1. 下载并解压boost_1_66_0.zip
  2. 下载并解压mysql-connector-c++-1.1.9.zip
  3. 下载并解压mysql-connector-c-6.1.6-win32.zip 注:vs2013工程不能使用太高版本,否则my_global.h会有编译错误
  4. 下载并安装cmake

编译

  1. 运行cmake-gui,source code目录选择mysql-connector-c++-1.1.9主目录,build binaries选择生成工程目录
  2. 点击下方的configure按钮,向导选择Visual Studio 12编译器,出现提示错误
  3. 点击上方的Add Entry按钮,增加字符串变量,BOOST_ROOT为boost_1_66_0的目录,再点击下方的configure按钮,在中间的变量列表中修改MYSQL_INCLUDE_DIR为mysql-connector-c++-1.1.9\include目录,MYSQL_LIB为mysql-connector-c-6.1.6-win32\lib\libmysql.lib
  4. 再点击下方的configure按钮
  5. 点击下方的Generate按钮,提示生成成功
  6. 选择菜单Tools->Show My Changes,显示改变的内容,选择Commandline options:部分内容并拷贝备用
  7. 在mysql-connector-c++-1.1.9源码目录下新建一批处理文件:make.bat,并编辑输入以下内容:cmake -G "Visual Studio 12"加上刚才拷贝的内容,保存
  8. 双击make.bat执行,结束后生成vs2013工程文件
  9. 打开生成的vs2013工程文件,可以全部编译,也可以只编译mysqlcppconn和mysqlcppconn-static项目,生成dll和lib文件

使用

  1. 在项目中引用库mysqlcppconn.lib,运行时libmysql.dll和mysqlcppconn.dll都需要
  2. 在项目预处理器定义CPPCONN_PUBLIC_FUNC=可以消除编译警告
  3. 不要用MySQL Server安装自带的lib和dll,使用时会有问题,要使用自己编译的lib和dll,libmysql.dll使用mysql-connector-c-6.1.9-win32提供的

备注

由于cmake生成的工程中mysqlcppconn-static生成的静态库中没有包含libmysql.lib,所以需要自己使用静态库时手动引入

1
#pragma comment(lib, "libmysql.lib")

因此可以调整工程属性,在工程mysqlcppconn-static中引入libmysql.lib,右键工程属性->库管理器->附加选项,添加C:\Program Files (x86)\MySQL\mysql-connector-c-6.1.6-win32\lib\libmysql.lib;