C++ header 文件中的宏重新定义问题
Macro redefinition problem in C++ header file
当我尝试运行以下header
https://github.com/marmalade/glib/blob/master/glibconfig.h
在 Microsoft Visual Studio 中,我收到以下错误:'G_CAN_INLINE':宏重新定义。这是什么原因?任何帮助表示赞赏。谢谢
实际上有一个技巧可能对您有用。你可以做的是:
注释掉glibconfig.h
中G_CAN_INLINE
的#define
(s)(先复制一份!)。
在相关的#include
之后,在产生编译错误的源文件中(临时)添加以下行:
int any_old_variable_name = G_CAN_INLINE;
给 Intellisense 一点时间赶上。
Right-click G_CAN_INLINE
和 select 'Go To Definition'.
运气好的话,VS 会向您展示该宏(也)被定义的位置,这应该可以帮助您弄清楚要做什么。
话虽如此,G_CAN_INLINE
看起来并不那么重要。您可能会发现在包含 glibconfig
.
之前,您可以 #undef
它
当我尝试运行以下header
https://github.com/marmalade/glib/blob/master/glibconfig.h
在 Microsoft Visual Studio 中,我收到以下错误:'G_CAN_INLINE':宏重新定义。这是什么原因?任何帮助表示赞赏。谢谢
实际上有一个技巧可能对您有用。你可以做的是:
注释掉
glibconfig.h
中G_CAN_INLINE
的#define
(s)(先复制一份!)。在相关的
#include
之后,在产生编译错误的源文件中(临时)添加以下行:
int any_old_variable_name = G_CAN_INLINE;
给 Intellisense 一点时间赶上。
Right-click
G_CAN_INLINE
和 select 'Go To Definition'.
运气好的话,VS 会向您展示该宏(也)被定义的位置,这应该可以帮助您弄清楚要做什么。
话虽如此,G_CAN_INLINE
看起来并不那么重要。您可能会发现在包含 glibconfig
.
#undef
它