2011-09-23 10 views
6

Tengo un proyecto de terceros en mi espacio de trabajo de Xcode (es una dependencia para mi proyecto principal) y quiero que Xcode ignore todas las advertencias de construcción de ese proyecto de terceros.Haga que Xcode ignore las advertencias de construcción de LLVM en el proyecto de terceros

Preferiblemente me gustaría ignorar todas las advertencias de compilación para el grupo Vendor/* en mi proyecto ya que ahí es donde pongo todo el código de mi tercero.

¿Posible?

Respuesta

5

Sí, es posible, pero solo si compila los archivos de terceros en un destino diferente. De esta manera, puede establecer diferentes indicadores de compilación.

Digamos que su objetivo principal es una aplicación. Usted definió su configuración de compilación, así como las banderas de advertencia del compilador.

Ahora quiere utilizar algunas fuentes de terceros. Los importa a su proyecto, pero generan una advertencia. Por supuesto, puede cambiar la configuración de su objetivo principal, pero estoy bastante seguro de que desea mantener su propia configuración.

Simplemente cree un objetivo adicional en su proyecto, que es una biblioteca estática. Elimina los archivos de terceros de su destino principal y los agrega a la biblioteca.

En las fases de compilación de su objetivo principal, vincule su aplicación con la biblioteca estática.

De esta manera, podrá usar el código de terceros en su aplicación, mientras tenga configuraciones de compilador diferentes para el código de un tercero.

3

si le preocupa sólo de advertencia a través de la inclusión, a continuación, se puede envolver las necesidades de inclusión declaraciones de este:

#pragma clang diagnostic push 
// in reality, you will likely need to disable *more* than Wmultichar 
#pragma clang diagnostic ignored "-Wmultichar" 
#include <TheirLibrary/include.h> 
#pragma clang diagnostic pop 

si también desea desactivar las advertencias de compilación que genera, a continuación, puede utilizar -w o GCC_WARN_INHIBIT_ALL_WARNINGS = YES para el objetivo de terceros al que se vincula o agrupa.

idealmente, archivará informes con el proveedor si está cerrado. si está abierto, entonces tal vez deberías arreglarlo tú mismo.

+0

Es posible que funcione, pero yo personalmente creo que esto es una mala opción, ya que el código será dependiente de pragmas del Clang ... – Macmade

+0

@Macmade sus datos de respuesta la segunda sección de mi respuesta. si está enlazando a la biblioteca, * es probable * que desee * usar * en su programa en algún momento. ¿Cómo proponen desactivar las advertencias generadas por los encabezados de terceros cuando están incluidos en su proyecto? tenga en cuenta que también puede ajustar el '#pragma clang diagnostic's en las comprobaciones del compilador (porque algunos compiladores se quejarán de pragmas desconocidos, si se solicita). – justin

+0

Tiene razón, pero si las advertencias provienen de los archivos de encabezado, entonces trataré de buscar otra solución, ya que puede implicar un código muy malo ...:) – Macmade

4

Ve a Fases de compilación>compila las fuentes. Opcionalmente filtre la lista. Seleccione los que desea excluir y luego haga doble clic en el área en blanco debajo de Columnas del compilador columna. Añadir -w y pulse Enter:

Adding compiler flag to Build Phase

+1

Desafortunadamente no se puede filtrar por contener una carpeta. –

Cuestiones relacionadas