2016-11-02 40 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將影響宏