C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法

使用vs2015开发c++win32项目时,用MySQL-Connector/c++连接MySQL时总是出现error: LNK2019错误

错误原因可能为:

1、缺少相应的库文件;
2、项目平台和所引用的第三方SDK不一致,即32bit对应引用了64bit,64bit对应引用了32bit。

解决方法:

1、检查项目中是否缺少某些库文件;
2、如果没有缺少库文件检查项目的属性,看看“平台”是不是和所引用的MySQL-Connector/c++不一致,即平台为Win32,所引用的MySQL-Connector/c++为64bit的,或者平台为x64,所引用的MySQL-Connector/c++为32bit。

总结:对于出现此种错误的原因及解决办法:

原因:

1. 出现这种情况一般是由于头文件中声明了函数或者类型,但是没有相关的实现源文件;
2. 通常情况是我们引入了第三方SDK的头文件,并在程序中使用(引用)了头文件中的函数或者类型,连接器却无法链接,即缺少lib文件。

解决办法:

1. 我们调用的函数或者类型并未实现;此时我们只要自己建立对应的源文件,并实现这些函数即可。
2. 第三方SDK一般以DLL文件的形式提供给我们,并提供相应的头文件及LIB文件;LIB文件是链接时需要的,它包含了DLL中函数的想关信息,因此我们只需要在项目添加对这些LIB的依赖既可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++与mysql连接遇到的问题汇总

    最近接触了很多数据库的东西,本来是一直接触的是sql server,不过由于项目需要就开始对mysql进行了连接.下面就让我这个菜鸟浅谈下经验吧. 对于C++连接mysql,我不太喜欢多下载一个软件mysqlodbc,所以采用的是通过mysql自己的API函数进行连接: 1.使用API的方式连接,需要加载mysql的头文件和lib文件. 在VS2010的附加包含目录中添加\MySQL\MySQL Server 5.1\include.在安装MySql的目录下找. 把libmysql.dll和li

  • C/C++ 连接MySql数据库的方法

    一.VS2008工程设置工作 首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE, 将连接器->系统->子系统 选择为控制台. 由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径, 在我的机子上,Mysql 的安装路径为:C:\Program File

  • C++用mysql自带的头文件连接数据库

    mysql.h文件在哪,怎么查找.自行百度 #include <mysql/mysql.h> #include <stdio.h> #include<iostream> #include<fstream> #include<string.h> using namespace std; MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; class people { public: char name[20];

  • C++连接mysql的方法(直接调用C-API)

    我装的是5.1版本,需要的头文件有 把需要的文件添加进去,然后再把 libmysql.lib放到项目目录里,文件在mysql安装目录 lib 下面. #include "stdafx.h" #include <iostream> #include <winsock2.h> #include "mysql.h" //#pragma comment(lib, "ws2_32.lib") #pragma comment(lib,

  • C++利用MySQL API连接和操作数据库实例详解

    1.C++连接和操作MySQL的方式 系列文章: MySQL 设计和命令行模式下建立详解 C++利用MySQL API连接和操作数据库实例详解 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的一个用于存取数据源的COM组件.它提供了程序语言和统一数据访问方式OLE DB的一个中间层,也就是Microsoft提出的应用程序接口(API)用以实现访问关系或非关

  • c++连接mysql5.6的出错问题总结

    1.描述:链接的时候出错了,错误提示:无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用 原因:我的机器是64bit WIN7系统,VS2012是32bit的,而MySQL是64bit的,32位工程调用64bit的libmysql.lib,因此连接出错啦. 解决:重新安装32bit的MySQL即可. 2.描述:编译出错, 1>c:\program files (x86)\mysql\mysql server 5.6\include\mysql_com.h(320)

  • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

  • error LNK2019: 无法解析的外部符号 问题的解决办法

    正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(461) : warning C4267: "参数": 从"size_t"转换到"DWORD",可能丢失数据1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(1131) : warning C4

  • 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: sudo dpkg -i mysql-workbench-community-6.3.8-1ubu1604-amd64.deb 提示:未安装软件包 libpng12-0. 然而使用sudo apt-get -f install后还是报错,后来找到下载libpng12-0的地址并安装. 2.下载安装libpng12-0 下载libpng12-0地址:

  • C++使用MySQL-Connector/C++连接MySQL出现LNK2019错误的解决方法

    使用vs2015开发c++win32项目时,用MySQL-Connector/c++连接MySQL时总是出现error: LNK2019错误 错误原因可能为: 1.缺少相应的库文件: 2.项目平台和所引用的第三方SDK不一致,即32bit对应引用了64bit,64bit对应引用了32bit. 解决方法: 1.检查项目中是否缺少某些库文件: 2.如果没有缺少库文件检查项目的属性,看看"平台"是不是和所引用的MySQL-Connector/c++不一致,即平台为Win32,所引用的MySQ

  • MySQL下PID文件丢失的相关错误的解决方法

    今天同事A找到我,说是Mysql server X的负载很高,查询很慢.他自己捣鼓了一阵未果后,我们一起看了下. [root@redhat var]# uname -a Linux xxx 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux [root@redhat var]# mysql -u root -p -e "select version();" +--------

  • PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 <?php /** * @Author: HTL * @Description: Description */ // 降低PHP默认的错误级别 // 只显示除禁用以外的所有错误 // 解决因为PHP5.3+版本太高而导致在使用mysql_connect时出现的弃用警告"Deprecated: mysql_connect(): The mysql extensio

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • Mysql 忘记root密码和修改root密码的解决方法(小结)

    一 修改root密码的三种办法 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p12

  • mysql启动失败之mysql服务无法启动(服务没有报告任何错误)的解决方法

    目录 错误提示 尝试以下步骤,最终解决问题: 总结 错误提示 My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:\Windows\System32\drivers\etc\hosts),是否修改过本地域名,如果将localhost对应的地址修改过,有可能会导致连接mysql server失败. 解决方法:将localhost映射的地址注释掉 2 如果在mysql的安装路径(C:\Program Files\MySQL\My

  • MySQL中隐式转换的踩坑记录以及解决方法分享

    目录 复现当时的情景 根源所在 隐式转换的规则 避免进行隐式转换 本来是一个平静而美好的下午,其他部门的同事要一份数据报表临时汇报使用,因为系统目前没有这个维度的功能,所以需要写个SQL马上出一下,一个同事接到这个任务,于是开始在测试环境拼装这条 SQL,刚过了几分钟,同事已经自信的写好了这条SQL,于是拿给DBA,到线上跑一下,用客户端工具导出Excel 就好了,毕竟是临时方案嘛. 就在SQL执行了之后,意外发生了,先是等了一下,发现还没执行成功,猜测可能是数据量大的原因,但是随着时间滴滴答答

  • MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)

    目录 前言​ 方法一:直接修改数据库配置 方法二:修改数据库配置(永久生效) 方法三:使用 any_value() 或 group_concat() 方法四:开动脑筋,修改代码 总结 前言​ 作为初学者,我们在使用MySQL的时候总是会遇到各种各样的报错,让人头痛不已.其中有一种报错,sql_mode=only_full_group_by,十分常见,每次都是老长的一串出现,然后带走你所有的好心情 出现这样的报错,并不是因为你的代码写得不好,而是因为在MySQL 5.7后,MySQL默认开启了SQ

  • MySql 修改密码后的错误快速解决方法

    设置好密码后,使用数据库时出现如下错误: ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement. You must SET PASSWORD before executing this statement的解决方法 今天在MySql5.6操作时报错:You must SET PASSWORD before executing this

随机推荐