【发布时间】:2017-08-03 11:06:19
【问题描述】:
[在下面查看我自己的答案。]
我的项目的头文件中有这段代码:
#ifdef _LINUX
#ifdef BUILD_ext
#define EXP_IMP_GLOBAL extern
#else
#define EXP_IMP_GLOBAL
#endif
#else
当 BUILD_ext 被定义时,G++ 告诉我以下信息:
error: expected identifier before ‘extern’
#define EXP_IMP_GLOBAL extern
^
note: in expansion of macro ‘EXP_IMP_GLOBAL’
class EXP_IMP_GLOBAL Classname
^~~~~~~~~~~~~~
我真的不知道如何处理此错误,因为未定义 BUILD_ext 时不会出现该错误,而且我也看不到为什么没有标识符。
【问题讨论】:
-
好吧,
class extern Classname不是有效的 C++。 -
您不能为课程指定
extern。你想完成什么?
标签: c++ linux macros shared-libraries