繁体   English   中英

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

[英]How to add MySQL connector/C++ 1.1 to Visual Studio 2010 project?

我正在尝试将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,而且似乎需要它。

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

谢谢

首先,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连接设置的非常详细的概述。 特别需要在[Project,Properties tree view,C ++,Preprocessor]下包含CPPCONN_PUBLIC_FUNC =和HAVE_INT8_T = 1的两个语句

3.)清楚你想要哪种模式的连接,mysqlcppconn.lib是基于dll的,而mysqlcppconn-static.lib是基于静态的。 对于基于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连接现在适用于我,希望它也适合你。 上面可能会遗漏一些细节,我很抱歉。

只是dddddd伟大帖子的一小部分。 如果您在Windows7上进行编译,那么您可能会从libmysql.lib库中获得一些“未解析的外部”。 我发现这是因为libmysql.lib来自服务器的64位安装。 您需要找到32位版本并与之链接,或者只安装32位服务器。

我终于通过下载源代码并使用与我的项目相同的设置编译它来使MySQL Connector / C ++与Visual Studio 2010一起工作。 它仍然警告SqlString库:

j:\mysql-connector-c++-1.1.0\cppconn\sqlstring.h(36): warning C4251: 'sql::SQLString::realStr' : class 'std::basic_string<_Elem,_Traits,_Ax>' needs to have dll-interface to be used by clients of class 'sql::SQLString'

但是,似乎没关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM