如何防止宏重新定义 [英] How to prevent macro redefinition

查看:33
本文介绍了如何防止宏重新定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的项目上工作了一段时间后,此警告开始出现:

After working some time on my project, this warning begins to appear:

2>Game.cpp
2>c:program filesmicrosoft sdkswindowsv6.0aincludewindef.h(126) : warning C4005: 'APIENTRY' : redefinición de macro
2>        c:usersferrandirectogameprojectsdev-libsglfwincludeglfw.h(72) : vea la definición anterior de 'APIENTRY'
2>c:program filesmicrosoft sdkswindowsv6.0aincludewingdi.h(23) : warning C4005: 'WINGDIAPI' : redefinición de macro
2>        c:usersferrandirectogameprojectsdev-libsglfwincludeglfw.h(88) : vea la definición anterior de 'WINGDIAPI'

我确定这是要解决的包含文件的顺序问题,因为这些文件都不是我的.我的问题是,是否有一种通用的方法可以防止这种情况发生,或者找到必须重新排序哪些文件以避免出现此消息.

I'm sure that it's a matter of the order of the include files to solve, because none of these files are mine. My question is if there is a generic way to prevent this or to find which files must to be reordered to avoid this message.

推荐答案

错误信息本身就是告诉你顺序错误.它说 windef.hwingdi.h 正在重新定义在 glfw.h 中定义的符号.

The error message itself is telling you the incorrect order. It says that windef.h and wingdi.h are redefining symbols that were defined in glfw.h.

glfw.h 放在 Windows 包含文件之后.

Put glfw.h after the Windows include files.

这篇关于如何防止宏重新定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆