当前位置: 首页 > news >正文

MSVC编译遇到C2059、C2143、C2059、C2365、C2059等错误的解决方案

在这里插入图片描述
MSVC编译时,遇到如下错误:

c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“常数” [D:\jenkins_home\workspace\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2143: 语法错误: 缺少“;”(在“)”的前面) [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“)” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1897): error C2365: “abort”: 重定义;以前的定义是“函数” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdlib.h(56): note: 参见“abort”的声明
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1945): error C2059: 语法错误:“}” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
aaa.c
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“常数” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2143: 语法错误: 缺少“;”(在“)”的前面) [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“)” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1897): error C2365: “abort”: 重定义;以前的定义是“函数” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdlib.h(56): note: 参见“abort”的声明
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1945): error C2059: 语法错误:“}” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
bbb.c
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“常数” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2143: 语法错误: 缺少“;”(在“)”的前面) [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1842): error C2059: 语法错误:“)” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1897): error C2365: “abort”: 重定义;以前的定义是“函数” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdlib.h(56): note: 参见“abort”的声明
c:\program files (x86)\windows kits\10\include\10.0.18362.0\um\msxml.h(1945): error C2059: 语法错误:“}” [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
D:\jenkins_home\workspace\xxx\xxx\xxx\xxx\xxx\model\xxx.c(291): warning C4090: “函数”: 不同的“const”限定符 [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
D:\jenkins_home\workspace\xxx\xxx\xxx\xxx\xxx\model\xxx.c(298): warning C4090: “函数”: 不同的“const”限定符 [D:\jenkins_home\workspace\xxx\xxx\xxx.vcxproj]
ccc.c

根据提示找到.c文件,发现代码也没有问题,也不是报的语法错误。

于是继续根据提示找到msxml.h文件的1842行,发现函数参数列表里有个pi,恰巧项目代码内有个宏定义是#define pi 3.14159
在这里插入图片描述

找到原因,是因宏定义与某些变量名冲突所致。

修改宏常量名称,再次编译,问题解决。


总结: 该类问题,一般都是由于重复定义或定义冲突等原因造成,尤其是在定义宏时尽可能避免简单字眼,防止与某些第三方库或代码发生冲突。

http://www.dtcms.com/a/107550.html

相关文章:

  • 打开pycharm显示编制索引后卡死
  • C++软件开发架构
  • llm-universe 踩坑记录
  • 数值与字典解决方案第二十五讲:数组的合并拆分及筛选
  • GNSS信号模拟器、导航信号模拟器、导航模拟信号源介绍
  • 如何解决 PyQt5 中的 `xcb` 插件加载错误
  • vue修饰符
  • ns-3使用animation出现文件小、无时间、打开后只有拓扑没有内容
  • 《静默与轰鸣的对决》
  • 什么是向量搜索Vector Search?
  • work03_1 实现一个简单的计算器,能够处理加法、减法、乘法和除法
  • 四、Bug篇+用例篇
  • Docker学习--容器操作相关命令--docker inspect 命令
  • C/C++指针核心难点全解析:从内存模型到实战避坑指南
  • AttributeError: module ‘smtplib‘ has no attribute ‘SMTP_SSL‘ 解决方法
  • AI小白的第十天:影响模型泛化能力的因素以及对策
  • spring boot 集成redis 中RedisTemplate 、SessionCallback和RedisCallback使用对比详解,最后表格总结
  • 系统思考与时间管理
  • 在MFC中使用Qt(五):MFC和Qt的共存和交互
  • 经典算法 最长公共子序列问题
  • GPU与CUDA对应
  • 阿里云服务器对接高防的时候可能会出现的问题
  • 鸿蒙应用元服务开发-Account Kit 常见问题说明
  • BRC认证是什么?如何获得BRC认证?对企业发展的好处
  • 解决Oracle PL/SQL中“表或视图不存在“错误的完整指南
  • 数据分析与知识发现 论文阅读【信息抽取】
  • OSD显示
  • 动态规划——区间DP
  • RedisTemplate 的 6 个可配置序列化器属性对比
  • apk签名与对齐