...../PluginLoader.h:34: 'Dummy_Func_For_Generating_FUNCTION_NAME_Macro()'存在多次定义
以上错误是由下面的代码引起的。我在文件中使用了include guards,并且其他所有内容都编译正常。
编辑:我的目标是检查是否定义了__PRETTY_FUNCTION__
,如果定义了,通过FUNCTION_NAME
宏在后面的代码中使用它(用于日志记录)。如果未定义__PRETTY_FUNCTION__
,则使用下一个最佳选择等。但是,我得到的回复让我意识到这是不可能的。那么,如果__PRETTY_FUNCTION__
和所有这些其他内容都不是宏,它们是什么?如何检查某个实现是否具有其中之一?
void Dummy_Func_For_Generating_FUNCTION_NAME_Macro()
{
#ifndef FUNCTION_NAME
#ifdef __PRETTY_FUNCTION__
#define FUNCTION_NAME __PRETTY_FUNCTION__
#elif __FUNCTION__
#define FUNCTION_NAME __FUNCTION__
#elif __func__
#define FUNCTION_NAME __func__
#else
#define FUNCTION_NAME ""
#endif
#endif
}
FUNCTION_NAME
。而且,我已经在标题中清楚地问了我的问题。 - nakiya