今天由于项目中需要c++连接mysql数据库,查了下相关资料,找到了mysql connector/c++,既然是mysql官方给的开源库,那就相信这个吧,因此决定使用了。
我的环境:
操作系统:windows xp
mysql:5.5.16
mysql connector/c++:1.1.1
boost:1.37
编译环境:vs2005
刚开始时,看到mysql官网上有已编译好的mysql connector/c++ 1.1.1,于是直接下下来后直接用,没想到也很顺利,没出现什么问题(可能是我之前有装过vc90的环境吧),但部署到正式环境上时问题就来了。
问题:
1.未找到libmysql.dll,这个比较容易解决,原因是正式环境上没装mysql服务器,因此缺失这个dll,在本机的c:\windows\system32目录下找到这个dll,放到运行环境的同一个目录下就可以了。
2.没有报任何错误,调用mysqlcppconn.dll的模块总是启动不成功,用Depends.exe工具查了下mysqlcppconn.dll的依赖关系,原来是缺少了MSVCP90.DLL和MSVCP90.DLL这两个东西,原来官网是用vc90来编译的,看来是要下载源码用vc80来编译才行了。
编译步骤:
1.先看下源码中的INSTALL文件,安装一些开源库时要有这个习惯,别一开始就问度娘,它会依赖mysql服务器的环境和boost(这两个之前已经安装好了),还需要cmake(cmake的安装不再这细说)。
2.启动vs2005的命令控制台,因为会关联到环境问题,
set MYSQL_DIR=$MYSQL_HOME --$MYSQL_HOME就是mysql的安装目录
set BOOT_ROOT=$BOOST_HOME --$BOOST_HOME是boost的安装目录
cmake -G "Visual Studio 8 2005"
这时connector/c++下会生成一个INSTALL.vcproj,用vs2005打开直接编译就行,会在driver\release目录(我是release编译的)下会生成mysqlcppconn.dll、mysqlcppconn.lib、mysqlcppconn-static.lib。