前言
这里简单记录下
cmake生成mysql-connector-c++
的vs工程项目
环境
windows10 + vs2013-x86
准备
mysql
下载地址
- 下载并解压
boost_1_66_0.zip
- 下载并解压
mysql-connector-c++-1.1.9.zip
- 下载并解压
mysql-connector-c-6.1.6-win32.zip
注:vs2013工程不能使用太高版本,否则my_global.h会有编译错误 - 下载并安装
cmake
编译
- 运行cmake-gui,source code目录选择mysql-connector-c++-1.1.9主目录,build binaries选择生成工程目录
- 点击下方的configure按钮,向导选择
Visual Studio 12
编译器,出现提示错误 - 点击上方的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 - 再点击下方的configure按钮
- 点击下方的Generate按钮,提示生成成功
- 选择菜单
Tools->Show My Changes
,显示改变的内容,选择Commandline options:部分内容并拷贝备用 - 在mysql-connector-c++-1.1.9源码目录下新建一批处理文件:make.bat,并编辑输入以下内容:
cmake -G "Visual Studio 12"
加上刚才拷贝的内容,保存 - 双击make.bat执行,结束后生成vs2013工程文件
- 打开生成的vs2013工程文件,可以全部编译,也可以只编译mysqlcppconn和mysqlcppconn-static项目,生成dll和lib文件
使用
- 在项目中引用库mysqlcppconn.lib,运行时libmysql.dll和mysqlcppconn.dll都需要
- 在项目预处理器定义
CPPCONN_PUBLIC_FUNC=
可以消除编译警告 - 不要用MySQL Server安装自带的lib和dll,使用时会有问题,要使用自己编译的lib和dll,libmysql.dll使用mysql-connector-c-6.1.9-win32提供的
备注
由于cmake生成的工程中mysqlcppconn-static生成的静态库中没有包含libmysql.lib,所以需要自己使用静态库时手动引入
1 |
因此可以调整工程属性,在工程mysqlcppconn-static中引入libmysql.lib,右键工程属性->库管理器->附加选项,添加C:\Program Files (x86)\MySQL\mysql-connector-c-6.1.6-win32\lib\libmysql.lib;