如何防止宏重新定义

2022-01-11 00:00:00 visual-studio macros c++

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

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.

相关文章