2016-11-02 37 views
1

CocoaLumberjack issue #778中,当CocoaLumberjack作为动态框架链接时,CocoaLumberjack.h中的行#import "DDLogMacros.h"没有任何影响。因此,LOG_ASYNC_ENABLED(在DDLogMacros.h中定义)未定义。Xcode中模块的预处理规则

有人可以解释有关Xcode模块的预处理规则的机制吗? 似乎预处理器不会“预处理”模块中的头文件。

回答

1

我不清楚预处理规则,但加上 #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将影响宏