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':宏重新定义。这是什么原因?任何帮助表示赞赏。谢谢

实际上有一个技巧可能对您有用。你可以做的是:

  1. 注释掉glibconfig.hG_CAN_INLINE#define(s)(先复制一份!)。

  2. 在相关的#include之后,在产生编译错误的源文件中(临时)添加以下行:

int any_old_variable_name = G_CAN_INLINE;

  1. 给 Intellisense 一点时间赶上。

  2. Right-click G_CAN_INLINE 和 select 'Go To Definition'.

运气好的话,VS 会向您展示该宏(也)被定义的位置,这应该可以帮助您弄清楚要做什么。

话虽如此,G_CAN_INLINE 看起来并不那么重要。您可能会发现在包含 glibconfig.

之前,您可以 #undef