最近工程需要用到Mysql Connector C++的库,从官网上下载的mysql-connector-c++-noinstall-1.1.9-win32版本,链接后程序可以执行,但是到了std::string相关的部分马上报错,查阅官网时发现对开发者的提示是,最好下载源码使用工程同一配置编译链接器的库;
准备工作:
1、下载Cmake cmake-3.8.1-win32-x86.msi 用于生成vs的project文件
2、下载boost库 boost_1_64_0.zip 用于辅助库,不知道哪个版本开始这个MySQL的connector的编译就需要使用到boost库了
3、准备好安装MySQL的机器上生成的include/lib目录,通常在C:Program FilesMySQLMySQL Server 5.7这个路径下,具体版本具体看。我机器用的是X64的版本。
4、下载MySQL connector C++的源代码,mysql-connector-c++-1.1.9.zip
开始:
1、boost库解压后即可,MySQL路径备好,打开Cmake GUI, 选取源码路径为MySQL connector C++解压后的根目录,选取该目录或者新建一个文件夹作为vs工程文件的生成路径
2、添加入口点(Entry)
MYSQL_INCLUDE_DIR:STRING=MySQL的机器上生成的include
MYSQL_LIB:STRING=**mysqlliblibmysql.lib
BOOST_ROOT:STRING=**oost_1_64_0
3、选择编译器,因为我机器安装的是MySQL的X64版本,此处也要生成64位版本的库,选择“Visual Studio 14 2015 Win64”,在指定的工程路径下有对应的MYSQLCPPCONN.sln解决方案,打开后选择项目mysqlcppconn进行编译,得到动态库,mysqlcppconn_static生成静态库
至此就完成了X64下的MySQL connector C++的编译工作了。
32位的区别在于选择的编译器为"Visual Studio 14 2015"
ps:
其实我很想用命令行的CMake来生成,可是,-G的参数识别不出来带Win64的编译器,没办法就只能使用GUI了~
当编译完成后,在测试Connector C++的代码运行时提示应用程序无法加载 0xc000007b啥的这种错误,请更换libmysql.dll库文件为标准Connector C中的dll文件,可能与服务器安装目录下的版本不一致导致。