首页 » C++ » vs2015编译mysql-connector-cpp-1.1.9

vs2015编译mysql-connector-cpp-1.1.9

原文 http://blog.csdn.net/windpenguin/article/details/76864485

2017-08-08 12:20:13阅读(621)

在下载的Connector.C++里面有提供lib和dll使用,不过如果项目用的是新的IDE开发,就需要自己编译connector。这里IDE是vs2015,操作系统是win10,mysql-connector-cpp的版本是1.1.9,同时会用到github和cmake。

 

下载源代码

git clone https://github.com/mysql/mysql-connector-cpp.git


因为要编译的版本是1.1.9,所以切换分支

git checkout -b v1.1.9 1.1.9

运行 vs2015 x86本机命令提示符,进入到源代码根目录,运行cmake命令

cmake -G "Visual Studio 14 2015"

 

如果想生成64为版本,就改成

cmake -G "Visual Studio 14 2015 Win64"


具体命令可以查看帮助

cmake --help

要注意的是,如果你想生成32位版本,那么你要指定32的mysql的lib,64位版本同理。具体说来就是假设你安装了64位的mysqlserver,那么在mysql server目录下的lib就是64位的,这个就只能用来生成64位的connector。

 

如果生成工程文件成功,那么恭喜你,可以跳过接下来的一部分内容。但是如果很不幸的生成失败,可以参考下下面的内容。打开根目录下的:CMakeFiles\CMakeError.log,提示:LINK : fatal error LNK1158: 无法运行“rc.exe”。

vs2015编译mysql-connector-cpp-1.1.9

 

看这报错,应该是找不到rc.exe。但是这个应该在VC++目录里面应该是能找到的,通常是在C:\ProgramFiles(x86)\Windows Kits目录里面。本机的rc.exe在C:\ProgramFiles(x86)\Windows Kits\10\bin\10.0.15063.0\x86。这里10.0.15063.0是win10的版本。在命令行通过set查看path

set

 

通过where查看是否能找到rc.exe

where rc.exe

 

果然path里面没有包含rc.exe所在的路径,所以生成失败。我分析是由于更新导致命令行默认的path不包含新的rc.exe所在的路径。这里win10更新后rc.exe跑到了新的版本目录下10.0.15063.0,而命令行path并没有把新的路径包含进来,所以运行cmake找不到rc.exe。 在命令行临时加上rc.exe所在的路径

set path=%path%;C:\Program Files (x86)\WindowsKits\10\bin\10.0.15063.0\x86

vs2015编译mysql-connector-cpp-1.1.9

 

竟然生成失败,关掉命令行窗口,重新打开再来一次,这次把rc.exe所在的路径放在最前面

set path=C:\Program Files (x86)\WindowsKits\10\bin\10.0.15063.0\x86;%path%

vs2015编译mysql-connector-cpp-1.1.9

 

终于不再提示无法运行rc.exe了,不过报错:fatalerror C1083: 无法打开包括文件: “pthread.h”

这是因为connector用到了boost,所以要指定boost所在的路径。

还有,得指定mysql server所在路径。

最终命令如下

cmake -G "Visual Studio 14 2015"-DBOOST_ROOT=E:\GitRepo\BoostDemo\External\boost_1_63_0\Include-DMYSQL_DIR="D:\Program Files (x86)\MySQL\MySQL Server 5.7"


生成成功,在根目录下可以找到.sln文件,用vs2015打开,编译项目mysqlcppconn和mysqlcppconn-static。这两个分别生成动态库和静态库。

 

不过在生成mysqlcppconn-static又碰到了问题:LINK:fatal error LNK1181: 无法打开输入文件“D:/Program”。

看这个提示,估计是路径没用双引号括起来,于是打开项目属性->库管理器->所有选项->附加选项,给路径加上双引导,保存,重新编译。最终编译成功。生成的lib在目录driver下。

vs2015编译mysql-connector-cpp-1.1.9

 

推荐参考文章

https://msdn.microsoft.com/zh-cn/library/ee855621.aspx

https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹