c/c++使用VS2013连接MySQL

vs连接数据库其实就是将mysql数据库.h头文件接口、lib链接文件和dll执行文件加入到项目中。下面是配置如何加入。

转于http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html

一、VS2013工程设置工作

首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE,

将连接器->系统->子系统 选择为控制台。

由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径,

在我的机子上,Mysql 的安装路径为:C:\Program Files\MySQL\MySQL Server 5.1

我们需要把VS2008的工程中的头文件路径和连接库路径指向上面的两个地方:

将x项目属性页的C/C++->常规->附加包含目录指向:C:\Program Files\MySQL\MySQL Server 5.1\include

将项目属性页的链接器->常规->附加库目录指向:C:\Program Files\MySQL\MySQL Server 5.1\lib\opt.

将链接器->输入->附加依赖项中添加libmysql.lib。

如果不设置链接器->输入->附加依赖项中添加libmysql.lib,那么会出现如下的错误:

1>------ 已启动全部重新生成: 项目: MySql-Connect, 配置: Debug Win32 ------

1>正在删除项目“MySql-Connect”(配置“Debug|Win32”)的中间文件和输出文件

1>正在编译...

1>MySql_Connect.cpp

1>x:\编程练习\c-c++\c\mysql_connect.cpp(35) : warning C4996: ‘scanf‘: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明

1>x:\编程练习\c-c++\c\mysql_connect.cpp(72) : warning C4996: ‘sprintf‘: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明

1>x:\编程练习\c-c++\c\mysql_connect.cpp(86) : warning C4996: ‘sprintf‘: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明

1>正在编译资源清单...

1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1

1>Copyright (C) Microsoft Corporation. All rights reserved.

1>正在链接...

1>LINK : 没有找到 d:\我的文档\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe 或上一个增量链接没有生成它;正在执行完全链接

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

1>d:\我的文档\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe : fatal error LNK1120: 10 个无法解析的外部命令

1>生成日志保存在“file://d:\我的文档\Visual Studio 2008\Projects\MySql-Connect\MySql-Connect\Debug\BuildLog.htm”

1>MySql-Connect - 11 个错误,3 个警告

========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

如果到这里你还没成功,继续看下面的解析:

之前经过配置,成功的在vs2013中成功的用c语言连接上的MySQL数据库,但是最近连接MySQL数据库,无论怎么配置,老是出错。

代码如下:

  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <mysql.h>
  5. #pragma comment (lib, "libmysql.lib")
  6. #pragma comment (lib, "mysqlclient.lib")
  7. int main()
  8. {
  9. char szTargetDSN[] = "test";
  10. char szSqlText[500]="";
  11. MYSQL * myData;
  12. myData = mysql_init((MYSQL*)0);
  13. //连接数据库
  14. if(mysql_real_connect( myData, NULL, "root", "123456", szTargetDSN, MYSQL_PORT, NULL, 0))
  15. {
  16. printf("数据库连接成功!/n");
  17. //构造SQL语句
  18. sprintf(szSqlText,  "create table mytable" "(time datetime, s1 char(6), " "s2 char(11), s3 int, s4 int)");
  19. if (mysql_query( myData, szSqlText))
  20. {//执行SQL语句出错
  21. printf( "Can‘t create table");
  22. mysql_close( myData );
  23. return FALSE;
  24. }
  25. printf("表创建成功/n");
  26. mysql_close(myData);
  27. }
  28. return TRUE;
  29. }

错误如下:

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

error LNK2019: 无法解析的外部符号 [email protected],该符号在函数 _main 中被引用

采用了以下的办法:

点击

1.项目->属性->vc++目录。

然后在"包含目录"中添加"E:/Program Files/MySQL/MySQL Server 5.5/include"

“库目录”中添加"E:/Program Files/MySQL/MySQL Server 5.5/lib"和"E:/Program Files/MySQL/MySQL Server 5.5/lib/Debug"。

2.项目->属性->链接器->输入->附加依赖项中添加libmysql.lib

但是编译依旧还是同样的问题。

于是开始思考,

lib是编译时需要的,dll是运行时需要的。

如果要完成源代码的编译,有lib就够了。

如果也使动态连接的程序运行起来,有dll就够了。

在开发和调试阶段,当然最好都有。

一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。

1.编译是通过静态链接库(lib)去找到接口的。

2.#pragma comment (lib, "libmysql.lib")

#pragma comment (lib, "mysqlclient.lib")

但是这两句代码并没有报错,证明这两个链接库也正常加入了啊。怎么还是出现“无法解析的外部符号”,很纳闷。

百思不得其解,踏遍百度谷歌必应。还是木有办法,或许就是那么灵光一闪,我擦。突然想起一个问题了。哥哥我装的是win7
64位啊,MySQL也是赤裸裸的64位,丫的,我用WIN32 项目搞毛线。于是有一个猜想就是,MySQL 64位的lib也是64位的接口。

于是用了两部去证明这个想法,

.项目->属性->配置管理器

活动解决方案平台,下拉选新建,出现一个新的对号框,在键入选择新平台中选择X64

最后重新编译,这次完全证明的我想法是对的。编译成功。哦也!

最后分析一下解决这个问题关键,其实这个问题很简单。搞明白dll和lib的作用,或许都能分析出这个问题了原因了。

写到这,再去搜索果不其然

http://www.linuxso.com/sql/19105.html

再一次说明,遇到问题要善于思考。

最后,也可以直接将.h文件和dll文件加到你的工程目录里。

时间: 2024-08-08 07:38:06

c/c++使用VS2013连接MySQL的相关文章

VS2013 连接 MySQL

1.安装必须的工具: mysql-connector-net-6.8.3 mysql-installer-community-5.6.16.0.msi mysql-for-visualstudio-1.1.4.msi MYSQL 入门书籍深入浅出MySQL全文.pdf http://pan.baidu.com/s/1nt6wzQ5 网盘资源地址 2.Nuget 程序包管理器中添加引用: Install-Package EntityFramework Install-Package MySql.D

VS2013连接Mysql数据库的设置以及常见问题

前两天用VS2013连接Mysql遇到了很多问题,上网搜了很多发现好多讲的并不清楚,于是乎我就想把我遇到的问题总结下来,帮助后来人少走点弯路. 步骤: 1:首先需要注意的是 Mysql版本是32位还是64位,如果是64位请将VS2013设置为 x64,具体设置为:右键项目->属性->在右上角有 “配置管理器” ->点击 修改为 x64 这么做的原因是接下来会用到 mysql 中有 libmysql.dll,而如果是64位的mysql,则该dll文件是64位的,正常的VS是用win32生成

VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧

因为之前都是看别人的项目,而没有自己从头到尾建立一个项目,所以这次尝试搭建时就出现了问题,主要是ASP.Net MVC项目中VS2013和MySql的连接. 第一个问题: 数据库表已建好,相应的数据库处理类已写好,然后在创建实体模型(右键Model->新建项->数据->ADO.NET实体数据模型)时没有MySQl选项,在网上搜了一圈,需要下载 mysql-for-visualstudio,网上搜的时候大家都建议下载mysql-for-visualstudio1.1.1,可是我在官网上没有

c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)

转载请注明出处,原文地址http://www.cnblogs.com/zenki-kong/p/4382657.html 刚开始写博客,博主还只是个大三汪,学艺不精,如有错误还请前辈指出(>^ω^<),废话不多说啦,进入正文 下一篇博客应该会讲使用mysql connector c++来让c++连接mysql,本篇是直接使用mysql api 首先交代一下开发环境,64位mysql5.6.23+VS2013+WIN7旗舰版 一开始用mysql5.7.6提示缺少binary_log_types.

VS2010/VS2013项目创建及通过ADO.NET连接mysql/sql server步骤(VS2013连接成功步骤见上一篇随笔)

本随笔主要是对初学者通过ADO.NET连接数据库的步骤(刚开始我也诸多不顺,所以总结下,让初学者熟悉步骤) 1.打开VS新建一个项目(这里的VS版本不限,建项目都是一样的步骤) VS2010版本如图: VS2013版本如图: 2.非空项目创建后,右侧“解决方案管理器”中会有一个“models”文件,右键“models”,具体步骤如下: 2-1步骤 2-2步骤 2-3步骤 2-3-1  注意这个是VS2010版本的截图 2-4步骤 2-5步骤 2-6步骤 2-7步骤 2-8步骤 2-10步骤 2-

如何在VS2013或更低版本中使用EntityFramework6.x连接mysql

在这就不多说entityframework相比ADO的各种利弊了.文笔不好请见谅. 近日使用entityframework6.0连接mysql,遇到各种问题,在百度谷歌上有许多帖子但是均无法解决情况.所以发一帖子提供完整可行的解决方案. 一,实体数据模型创建向导中出现MysqlDatabase: 1:安装MySQL for Visual Studio 1.1.1(含以上版本) 2:安装MySQL Connector Net 6.8.3(含以上版本) 3:安装Nuget包管理器,在vs的拓展功能中

Asp.net Mvc 使用EF6 code first 方式连接MySQL总结

最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参考下.当你考虑使用EF连接Mysql的时候肯定是已经在网上搜了一堆教程.网上教程基本都是使用控制台做演示.跟着一步步来姿势没错的话可能会正常运行,但项目中使用分层后,把数据层剥离出去,再使用code first连接瞬间蒙B了,各种奇葩问题随之而来.咋跟教程说的不一样呢...所以本文就一步步的介绍如何

C/C++连接MySql数据库

本文档是关于如何使用MySql的API连接MySql数据库,开发环境为VS2013. 开发环境设置: 先确定以下两个位置 mysql.h所在位置:C:\software\wamp\bin\mysql\mysql5.5.20\include libmysql.lib所在位置:F:\mysql\mysqllib 需要把VS2013的工程中的头文件路径和连接库路径指向上面的两个地方: 将该项目属性页的C/C++->常规->附加包含目录指向:C:\software\wamp\bin\mysql\mys

转载:EntityFramework 6.0&lt; Code First &gt; 连接 Mysql数据库

转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装: 1.开发环境: VS2013与EF6 2.Mysql数据库为:Mysql Server 6.0 3.安装:Mysql for Visual Studio 1.1.1 下载位置:https://cdn.mysql.com/Downloa