1

CocoaLumberjack issue #778では、CocoaLumberjackが動的フレームワークとしてリンクされている場合、 #import "DDLogMacros.h"inの行CocoaLumberjack.hは何の効果もありません。したがって、LOG_ASYNC_ENABLED(で定義されているDDLogMacros.h) は未定義です。

Xcode モジュールの前処理規則に関するメカニズムを誰か説明できますか? プリプロセッサはモジュール内のヘッダーを「前処理」していないようです。

4

1 に答える 1

1

前処理のルールはよくわかりませんが、add で #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.hdefineLOG_ASYNC_ENABLEDでは、順序がCocoaLumberjack-umbrella.hマクロに影響を与えると思います

于 2017-03-06T09:16:13.567 に答える