如何将MySQL连接器/ C++ 1.1添加到Visual Studio 2010项目?

Hak*_*aks 2 c++ mysql database visual-studio-2010 mysql-connector

我正在尝试将MySQL Connector/C++添加到我的visual Studio 2010项目中.

我按照步骤(这里,mysql文档)将它添加到Visual Studio(我还在"附加包含目录"中添加了Boost).

它要求一个"sqlstring.h"文件(一个版本如何错过一个文件?!),所以我从源文件(mysql源档案)获得它.

然后,它要求libmyql.lib,我有MySQL Server 5.5\lib的lib目录.

而现在,我正在犯这个错误:

错误127错误LNK1120:31未解析的外部C:\ Users\Haks\Documents\Visual Studio 2010\Projects\ProductManager\Debug\ProductManager.exe ProductManager

错误60错误LNK2001:未解析的外部符号"__declspec(dllimport) bool __cdecl std::operator<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_??$?MDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) C:\ Users\Haks\Documents\Visual Studio 2010\Projects\ProductManager\ProductManager\mysqlcppconn-static.lib(mysql_ps_resultset.obj)ProductManager

所以,也许是因为我得到了MySQL Connector/C++ 1.1的二进制版本,也许它与VS 2010不兼容......

但我找不到编译源文件的好方法,而且我从不使用Boost或CMake,而且似乎需要它.

我没有找到任何关于我的问题的提法,所以如果有人得到回应或者有好的方式,那对我和我想的很多人来说都会非常有用.

谢谢

小智 6

首先,thanx到dar7yl指向正确的方向.

花了很多时间调试mysql连接(VS 2010,C++),这被证明是一个很大的头发提升经验,我不得不说一些关于它的事情.(假设您正确设置了C++包含文件目录和链接目录+附加依赖文件,否则请参考第2点的网站以供参考)

是的,我们需要加强库.下载boost库(搜索谷歌)并将其解压缩到您的开发文件夹中,并让您的c ++附加包含目录指向它(boost主目录,而不是boost子目录).

1.)需要明确VS解决方案配置模式"debug"和"release"的区别.在目录下完全安装MYSQL后提供的.lib文件...\mysql\Connector C++ ____\lib \有两个debug和opt目录,用于解决方案模式"debug"和"release".主要区别是"调试"模式使用额外的.pdb文件.

2.)http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-apps-windows-visual-studio.html给出了VS2008 mysql连接设置的非常详细的概述.特别是需要在[项目,属性树视图中,在C++中,预处理器] CPPCONN_PUBLIC_FUNC两个语句包括=和HAVE_INT8_T = 1

3)要明确你将与图书馆喜欢哪种连接方式,而基于mysqlcppconn-static.lib是静态mysqlcppconn.lib是基于DLL.对于基于dll的lib,需要将相关的dll mysqlcppconn.dll存入\ windows\system32 \或其他系统路径进行访问.
对于静态连接,请记住它使用extern C连接,因此你需要来自...\mysql\connectorc c ___ \的libmysql.lib + libmysql.dll(libmysql.pdb,如果在"debug"下),如果不是你将获得未解析的外部符号错误LNK 2019所以及时更新你的c ++包括文件目录,链接包括文件目录,附加相应的依赖定金和.dll文件到系统路径或....\WINDOWS\SYSTEM32 \

4.)在这一点上,事情应该对我们中的一些人有用.不,它对我不起作用.原因?dar7yl概述的库可比性问题.因此,如果是这种情况,请通过选择平台下载源代码,在http://dev.mysql.com/downloads/connector/cpp/下载连接器的源代码.打开包装,从这里开始变得有点复杂.没有VS解决方案或项目文件?不用担心,看到cmake __.txt文件?这是我们的解决方案.下载cmake并让源目录和目标目录指向解压缩的源代码目录.然后在目录中打开cmake __.txt并搜索关键字"boost"并更新boost目录以指向您的boost目录.运行configure并设置为VS 2010,检查概述的配置并更改所需的名称/值表,然后按generate.到目前为止,您的项目+解决方案文件应该已生成,打开它,您将看到许多项目.我们只关心mysqlcppconn和mysqlcppconn-static.检查并更新两个项目属性中的包含文件,链接文件+依赖项并进行编译.将生成的.lib + .dll(以及.pdb,如果使用"debug"模式)放入相应的目录中,您的项目现在应该可以正常工作.

到目前为止,mysql连接现在适用于我,希望它也适合你.上面可能会遗漏一些细节,我很抱歉.