禁止输出时编译错误
mojinpan opened this issue · comments
在elog.h中elog_a~elog_v的宏定义默认给出了有效定义(187-192行),导致未定义ELOG_OUTPUT_ENABLE时不能将宏有效置空。
刚修正了,你再试试,多谢反馈哈~
应该是把elog.h中elog_a~elog_v的宏定义默认给出了有效定义(187-192行),移至78行#else /* ELOG_OUTPUT_ENABLE /的后面:如下:
……
#ifndef ELOG_OUTPUT_ENABLE
#define elog_a(tag, ...)
#define elog_e(tag, ...)
#define elog_w(tag, ...)
#define elog_i(tag, ...)
#define elog_d(tag, ...)
#define elog_v(tag, ...)
#else / ELOG_OUTPUT_ENABLE */
#define elog_a(tag, ...) elog_assert(tag, VA_ARGS)
#define elog_e(tag, ...) elog_error(tag, VA_ARGS)
#define elog_w(tag, ...) elog_warn(tag, VA_ARGS)
#define elog_i(tag, ...) elog_info(tag, VA_ARGS)
#define elog_d(tag, ...) elog_debug(tag, VA_ARGS)
#define elog_v(tag, ...) elog_verbose(tag, VA_ARGS)
……
都行的,之前这个位置的定义写错了,所以修正下就行了
EasyLogger/easylogger/inc/elog.h
Lines 71 to 78 in fa7f940
实际上是不行的,原文结构如下;
……
#ifndef ELOG_OUTPUT_ENABLE
#define elog_a(tag, ...)
#define elog_e(tag, ...)
#define elog_w(tag, ...)
#define elog_i(tag, ...)
#define elog_d(tag, ...)
#define elog_v(tag, ...)
#else /* ELOG_OUTPUT_ENABLE */
……
#endif /* ELOG_OUTPUT_ENABLE */
……
#define elog_a(tag, ...) elog_assert(tag, __VA_ARGS__)
#define elog_e(tag, ...) elog_error(tag, __VA_ARGS__)
#define elog_w(tag, ...) elog_warn(tag, __VA_ARGS__)
#define elog_i(tag, ...) elog_info(tag, __VA_ARGS__)
#define elog_d(tag, ...) elog_debug(tag, __VA_ARGS__)
#define elog_v(tag, ...) elog_verbose(tag, __VA_ARGS__)
……
无论#ifndef ELOG_OUTPUT_ENABLE 是否生效,最后面的elog_a~elog_v的定义均生效,导致错误,这部分内容必须放到:
#else /* ELOG_OUTPUT_ENABLE */
……
#endif /* ELOG_OUTPUT_ENABLE */
你可以更新下来试试嘛,我这边测试没问题
改动位于:6734e93