环境:Win10, x64, VS2017, NX

记录日期:2020/09/10


错误描述:

NX二次开发时,新建了一个头文件 a.hpp,部分代码如下:

#include <uf_defs.h>
#include <uf_ui_types.h>
#include <iostream>enum class DllExport FORM_TYPE
{UNIFIED = 0,METRIC,   //出错语句TRAPEZOIDAL
};

编译是成功的,然后在另外一个代码文件中 b.cpp 中使用 a.hpp,代码如下:

#include <uf.h>
#include "ToolData.hpp"
#include <memory>
#include <array>

编译报错,提示  METRIC 是常数 !!!


错误原因:

在b.cpp中, uf.h 文件在ToolData.hpp前面,打开uf.h 发现 uf.h 已经有    #define METRIC            1

但由于a.hpp 中 没有uf.h, 所以定义METRIC不会冲突,a.hpp 文件单独编译肯定是正确的,

但当其他文件使用 a.hpp 时,如果 uf.h 在 a.hpp 前面,编译就会报错。


解决办法:

1. 养成一个好的习惯,将系统文件放在最前面,这样重复的变量在编译前就会暴露出来,

然后使用 undef METRIC 解决冲突,毕竟这种错误很难定位,尽量规范。

2.  自己编写代码定义变量时,尽量避免系统关键字 ,如MessageBox, 使用不会重复的名字,

这种方法比较笨,不建议使用。

C++ error C2059: 语法错误:“常数”相关推荐

  1. c语言中 c2059错误是,解决error C2059: 语法错误:“::”问题

    错误代码提示: >f:\opencv\opencv\build\include\opencv2\flann\lsh_table.h(): error C2059: 语法错误:"::&q ...

  2. max 宏定义取消:error C2589: error C2059: 语法错误 : “::”

    原文链接:http://blog.csdn.net/danelumax2/article/details/9172465有修改! 一:关于Pcl和WIndef的冲突: 1. 错误输出 ./zlibra ...

  3. error C2059: 语法错误:“,”

    在使用libcef库做MFC开发时,出现一个编译错误:error C2059: 语法错误:"," 这个错误出现的很奇怪,通过撤销修改发现是因为头文件引用的先后顺序造成的.我把#in ...

  4. error C2059: 语法错误:“::”

    下面这段代码: Index i2 = std::min(0 + slice, loop_size); 编译会出现这样的错误: 1> error C2059: 语法错误:"::" ...

  5. 解决error C2059: 语法错误:“::”问题

    错误代码提示: 1>f:\opencv\opencv\build\include\opencv2\flann\lsh_table.h(266): error C2059: 语法错误:" ...

  6. error C2059: 语法错误:“常量”解决方案

    场景 添加海康,宇视SDK对接的头文件和库文件,编译出错提示error C2059: 语法错误:"常量".显示宇视SDK头文件NetDEVSDK.h中宏定义异常  typedef ...

  7. 解决winnt.h(389): error C2059: 语法错误:“;”

    大胸弟:来都来了,不点点关注,不点点赞 ,您是不是有点太不讲武德了! 问题:突然出现winnt.h(389): error C2059: 语法错误:";"  就这么一句话,怎么破, ...

  8. 关于error C2059: 语法错误:“类型”,初学者的一点收获

    今天按照课本抄代码的时候出现了 error C2059: 语法错误:"类型" #include<stdlib.h> #include<stdio.h> in ...

  9. c语言 2059 语法错误,关于CUDA C 项目中“ error C2059: 语法错误:“” ”问题的解决方法...

    该问题的关键在于理解CUDA项目中C\C++文件需要由c++编译器进行编译,而CUDA C的源文件需要由CUDA的编译器nvcc.exe进行编译. 发生该语法错误的原因是cu文件被C++编译器所编译, ...

最新文章

  1. mysql mha官网下载_mysql MHA 及多主复制
  2. CodeForces - 715A Plus and Square Root(思维+构造)
  3. LeetCode题库第2题 两数相加
  4. cocos 事件分发2
  5. cf1553C. Penalty
  6. 前端和后端哪个工资高_新媒体运营和网络运维哪个好,哪个工资待遇高,门槛低?...
  7. 《南溪的目标检测学习笔记》——图像预处理的学习笔记
  8. window.open() 方法
  9. Python使用matplotlib可视化模拟龟兔赛跑折线图
  10. 黑马程序员_JavaWeb013
  11. 哪种编程语言好?大神为你分析 Go、Java、C、C++ 等主流编程语言
  12. 汉语言01C1501,2019年北京自考汉语言文学(本科)专业(01C1501)要考哪些科目?...
  13. mstar的android方案,Mstar Android 方案.pdf
  14. 项目管理(软件开发)之思维导图使用
  15. centos7密码正确登录失败
  16. Cocos Creator 基于 Spine 动画的 AVATAR 换装系统优化
  17. vue根据表格分页,前端实现方法
  18. 120个微信小程序源码,打包下载
  19. 中级工程师的职称好评吗?怎么评中级工程师?需要什么材料?
  20. ThinkPad P52 安装Ubuntu16双系统踩雷与建议 (图显P1000)

热门文章

  1. 六款好用的Mac最流行的开发工具,程序员必看~
  2. 使用Amazon SNS,发邮件
  3. Jmeter——BeanShell PreProcessor的用法
  4. 【番杰的问答笔记】C语言的命令注意事项
  5. VMware安装windows server2008R2x64
  6. vmware装的ubuntu的界面怎么全屏?
  7. Cocos Creator Layout组件
  8. TeamTalk服务器
  9. 逻辑运算符和逻辑表达式(逻辑或、逻辑与、逻辑非)
  10. 后台执行linux命令