2015-07-20 8 views
9

Affinché il framework Objective-C si colleghi correttamente al mio framework di tocco cacao Swift, ho dovuto utilizzare this unpretty workaround, che implica l'importazione di tutte le intestazioni del framework nel progetto come intestazioni pubbliche.Xcode: LLVM 7.0: disabilita l'avviso "Umbrella header per module non include intestazione"

Non ho assolutamente bisogno che tutti vengano visualizzati nell'intestazione dell'ombrello, quindi desidero rimuovere in qualche modo il gruppo di avvisi generati. ("Umbrella header for module" Foo "non include l'intestazione"). Sono passato attraverso le impostazioni di avviso LLVM nelle impostazioni di compilazione, ma non sono riuscito a trovarlo.

risposta

2

Il flag di avviso è -Wincomplete-umbrella, quindi per sopprimere, passare -Wno-incomplete-umbrella.

1

Prova a impostare il ruolo di intestazione da pubblico a progetto e assicurati di non fare riferimento a intestazioni di terze parti dalle intestazioni personali, solo dalle implementazioni.

Qualsiasi intestazione che è di ruolo pubblico deve essere importata nell'intestazione dell'ombrello.

+1

lo scopo è in realtà il collegamento con framework di terze parti, la soluzione alternativa di importare tutte le intestazioni di framework di terze parti come pubbliche consente di evitare l'errore di linker 'include of intestazione non modulare', ma non si desidera esporre queste intestazioni, questo è il motivo per cui vorresti semplicemente ignorare gli avvertimenti e non includerli nell'intestazione dell'ombrello. – ambientlight

Problemi correlati