在CocoaLumberjack issue #778中,当CocoaLumberjack
作为动态框架链接时,#import "DDLogMacros.h"
中的CocoaLumberjack.h
行没有任何作用。因此,LOG_ASYNC_ENABLED
(在DDLogMacros.h
中定义)是未定义的。
有人可以解释有关Xcode模块预处理规则的机制吗?
看来预处理器不会“预处理”模块中的头文件。
最佳答案
我不清楚预处理规则,但是请添加#import <CocoaLumberJack/DDLog+LOGV.h>
可以处理。
在CocoaLumberjack-umbrella.h
中,顺序如下:
#import "DDLog+LOGV.h"
#import "DDLog.h"
#import "DDLogMacros.h"
如果我这样更改订单就可以了:
#import "DDLogMacros.h"
#import "DDLog+LOGV.h"
#import "DDLog.h"
在
DDLog+LOGV.h
中还定义LOG_ASYNC_ENABLED
,我猜CocoaLumberjack-umbrella.h
中的顺序将影响宏关于ios - Xcode中模块的预处理规则,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40374236/