所需工具
[CMAKE](https://cmake.org/)
[BOOST](http://www.boost.org/)
[MySQL Community Server](http://dev.mysql.com/downloads/mysql/) 安装版绿色版都行
[MySQL Connector/C](http://dev.mysql.com/downloads/connector/c/) 下载源码
[MySQL Connector/C++](http://dev.mysql.com/downloads/connector/cpp/) 下载源码
Visual Studio 不说了, 没它拿啥编译
编译代码
1. 安装MySQL Server, 最好可以正常跑起来
2. 安装CMAKE
3. 编译Connector/C(因为Connector/C++依赖Connector/C)
解压缩源码, 比如释放到F盘, 并改名为mysqlc(纯粹为了方便说明)
打开CMAKE-GUI(在安装目录里找), Source Path选择"F:\mysqlc", Build Path选择"F:\buildc"
Build Path可以和Source Path一样
点Configure, 选择编译器与平台, 点Finish, 出现"Configuring done"后点Generate
出现"Generating done"后, CMAKE部分完事儿
在"F:\buildc"里找项目文件(sln), 打开, 编译(注意Debug与Release), C组件搞定
4. 编译Connector/C++
解压缩, 改名mysqlcpp
打开CMAKE-GUI, 目录选"F:\mysqlcpp"和"F:\buildcpp"
点Configure, 出现错误, 需要BOOST, 解压到"F:\boost"
CMAKE界面点击"Add Entry"(添加环境变量)
Name="BOOST_ROOT", Type="String", Value="F:\boost", OK
再点Configure, 出错, 找不到"mysql.h", 打开FindMySQL.cmake查看内容, 再添加环境变量
Name="MYSQL_INCLUDE_DIR", Type="Path", Value="F:\mysqlc\include", OK
再点Configure, 出错, 缺"MYSQL_LIB", 注意, 这里决定动态链接还是静态链接
若静态链接, 添加环境变量, Name="MYSQLCLIENT_STATIC_LINKING", Type=BOOL, Value打钩
再添加环境变量, Name="MYSQL_LIB", Type="FILEPATH",
Value="F:\buildc\libmysql\Release\mysqlclient.lib"(静态链接)
或者 "F:\buildc\libmysql\Release\libmysql.lib"(动态链接)
再点Configure, 出错, 需要MySQL Server版本
再添加环境变量, Name="MYSQL_VERSION", Type="String", Value="x.x.x"(MySQL Server版本号)
再点Configure, 可以安心等一会儿了, 出现"Configuring done"再点Generate
完事儿后就可以编译去了
编译时还会出错(有完没完?), 缺文件
从MySQL Server的安装目录的include里找my_config.h/mysql_version.h/mysqld_error.h三个文件
复制到"F:\mysqlc\include"中
继续编译, 出错(要疯了), "MYSQL_TYPE_JSON"未定义, 看源码得知这东西应该是个枚举类型
但值是多少? 搜索引擎, 搜索时带上另一个枚举的名字
比如我这样搜索"MYSQL_TYPE_JSON MYSQL_TYPE_NEWDECIMAL"
得知"MYSQL_TYPE_JSON=245", 加进去
继续编译, 终于大功告成, 编译成功.
总结
编译Connector/C很简单, 几步就搞定.
而编译Connector/C++就比较坎坷了, 熟练后事先添加环境变量会好很多
BOOST_ROOT String
MYSQL_INCLUDE_DIR Path
MYSQL_LIB FilePath
MYSQLCLIENT_STATIC_LINKING BOOL
MYSQL_VERSION String
注: Connector/C++依赖MYSQL的SDK, 尽量使用Connector/C带的文件, 没有再去MySQL Server里找文件
编译时注意Debug/Release, MD/MT等参数, 要保持一致
附
2016-3-10 13:12:01
CMAKE 3.5.0 非安装板
BOOST 1.60.0
MySQL Community Server 5.7.11 非安装版
MySQL Connector/C 6.1.6
MySQL Connector/C++ 1.1.7
Visual Studio 2010