MySQL “error: ‘fd’: 未知重写说明符”

这篇具有很好参考价值的文章主要介绍了MySQL “error: ‘fd’: 未知重写说明符”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、【问题】MySQL “error: ‘fd’: 未知重写说明符”

有以下代码,mysqlincludelib 都已经加入附加目录,libmysql.lib 已经加入依赖库:

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

#include <mysql.h>
#include <string>
using std::string;

int main()
{
    ......
    return 0;
}

当编译时遇到如下错误:

mysql server 5.5\include\mysql_com.h(291): error C3646: “fd”: 未知重写说明符
mysql server 5.5\include\mysql_com.h(291): error C4430: 缺少类型说明符 - 假定为 int
mysql server 5.5\include\mysql_com.h(470): error C2065: “SOCKET”: 未声明的标识符
mysql server 5.5\include\mysql_com.h(470): error C2146: 语法错误: 缺少“)”(在标识符“s”的前面)

MySQL “error: ‘fd’: 未知重写说明符”,C++,MySQL,mysql,数据库,c++
很明显,mysql_com.hmysql 提供的头文件,这里并未涉及我编写的代码。

2、【解决】增加引用头文件

当用C/C++ 连接数据库并且采用ODBC(Open DataBases Connection) 肯定会出现
#include 这个头文件,关键就是这个头文件的问题,以前写程序都没考虑过头文件摆放次序的问题,这次的问题让我大开眼界。

在预编译 #include <mysql.h> 一定要先包含 #include <winsock.h> 这个头文件才不会出现刚才的问题。

winsock.h这个头文件一定要在mysql.h的头文件前面。

  • 原因:
    • #include "mysql.h"中调用了mysql_com.h,而mysql_com.h使用了有关网络套接字的fd,所以如果没有网络通信的头文件的话,就会报错。

加上下面头文件即可:

#include <WinSock2.h>//必须要有,解决“fd”:未知重写说明符

#ifdef _MSC_VER
	#ifdef _WIN64
	#include <WinSock2.h>
	#elif _WIN32
	#include <winsock.h>
	#endif
#endif

MySQL “error: ‘fd’: 未知重写说明符”,C++,MySQL,mysql,数据库,c++文章来源地址https://www.toymoban.com/news/detail-565830.html

到了这里,关于MySQL “error: ‘fd’: 未知重写说明符”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++的auto类型说明符详解 附易错实例

      💯 博客内容:C++读取一行内个数不定的整数的方式 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信 😘 😘 😘 目录 基本概

    2024年02月13日
    浏览(37)
  • C++ 访问说明符详解:封装数据,控制访问,提升安全性

    访问说明符是 C++ 中控制类成员(属性和方法)可访问性的。它们用于封装类数据并保护其免受意外修改或滥用。 public :允许从类外部的任何地方访问成员。 private :仅允许在类内部访问成员。 protected :允许在类内部及其派生类中访问成员。 解释: 在 Person 类中,

    2024年04月24日
    浏览(39)
  • C6064:缺少“scanf_s”的整型参数(对应于转换说明符“2”

    学习过程遇见的问题,出现两个警告,一个是关于 C6054 :可能没有为字符串“name”添加字符串零终警告,另一个是关于 C6064 :缺少“scanf_s”的整型参数(对应于转换说明符“2”,因为篇幅太长,本片只介绍C6064:缺少“scanf_s”的整型参数(对应于转换说明符“2”,警告C605

    2024年02月11日
    浏览(48)
  • java重写(@Override)介绍及实例说明

    方法的重写(override)是封装的特性之一。在子类中可以根据需要对基类中继承来的方法进行重写。重载和重写没有任何关系。 作用:通过重写,子类既可以继承父类的东西,又可以灵活的扩充。 1.@override注解是告诉编译器,下面的方法是重写父类的方法 2.编译器可以给你验

    2024年02月03日
    浏览(64)
  • 【MySQL】MySQL的IFNULL()、ISNULL()、NULLIF()函数用法说明

    MySQL IFNULL 函数是 MySQL 控制流函数之一。 它有两个参数,第一个参数不为 NULL 时返回。 否则,IFNULL 函数返回第二个参数。 这两个参数可以是文字值或表达式。 如果 expression1 不为 NULL,则 IFNULL 函数返回 expression1 ,否则返回 expression2 。 MySQL ISNULL() 函数用于检查表达式 是否为

    2024年02月12日
    浏览(43)
  • Docker 安装MySQL 5.7(超详细文图说明及MySQL配置)

    1) 下载MySQL5.7镜像 2) 查看已下载的docker镜像 3) 创建MySQL容器并运行 方式一 (快捷方式,仅配置root密码) 方式二 (配置容器MySQL数据、配置、日志挂载宿主机目录) 参数说明: 参数 说明 –name mysql5.7 容器名称 -p 3306:3306 端口映射(宿主机端口:容器端口) -e MYSQL_ROOT_PASSWORD=123456 容器的环

    2024年02月03日
    浏览(46)
  • mysql数据导入导出参数说明

    这种方法的好处是导出的数据格式可以自己规定,并且导出的是纯数据,不含建表信息。 1. into outfile 导出 2. load data infile 导入 1.导出整个数据库 3.导出结构不导出数据 4.导出数据不导出表结构 5.导入数据 1.  --all-databases , -A 2. --all-tablespaces , -Y 3. --no-tablespaces , -y 4. --add-drop

    2024年02月11日
    浏览(43)
  • Mysql Explain各字段说明

    id :同一个select,id都是1;不同的select,id才不同。 select_type: 查询类型 SIMPLE:普通查询 PRIMARY:主查询 SUBQUERY:子查询 DEPENDENT SUBQUERY:子查询,不能被优化为连接查询 UNION:联合查询 UNION:联合查询后,去除重复的数据 UNION ALL: 不去除重复的数据 table:表 partitions: type:索引

    2024年01月19日
    浏览(50)
  • csv批量导入mysql案例说明

    CSV文件是一种以逗号分隔的值文件,也叫做逗号分隔值文件。它可以在不同软件之间进行数据传输,也可以轻松地将数据导入到MySQL数据库中。本文将介绍如何使用CSV批量导入MySQL命令,并提供一个CSV导入MySQL的案例。 一、CSV批量导入MySQL命令 格式化CSV文件 在将CSV文件导入M

    2024年02月04日
    浏览(49)
  • 【MYSQL】误删数据恢复流程说明

    误删数据恢复流程说明 项目场景:使用navicat时,不小心误删除几条数据,需要对数据进行恢复 第一步:保证mysql已经开启binlog,查看命令 : 如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。 查看bi

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包