2011-07-01 35 views
5

Puedo usar el marco precompilado provisto en la página del proyecto plcrashreporter al compilar para el dispositivo, pero no para el simulador. Tengo el mismo problem described here.No se puede compilar plcrashreporter en Xcode 4


que asumen el marco de pre-compilados no es compatible con la arquitectura del simulador, lo que he descargado la fuente plcrashreporter. Abrí el proyecto de Xcode y seleccioné el objetivo CrashReporter-iOS-Simulator > iPhone 4.3 Simulator. Cuando intento para construir el proyecto, me sale este error:

libtool: unknown option character `D' in: -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000

consigo el mismo error cuando intento de construir la mayor parte de los otros objetivos (por ejemplo, para el dispositivo).


Mi siguiente paso fue intentar agregar los archivos fuente a mi proyecto. Ya no tengo el problema antes mencionado; Sin embargo, me sale este error cuando intento compilar:

fatal error: 'crash_report.pb-c.h' file not found [2] 
#import "crash_report.pb-c.h" 
     ^
1 error generated. 
Command clang failed with exit code 1

El archivo crash_report.pb-c.h que se menciona en el mensaje de error, simplemente no existe; He buscado en el árbol fuente de plcrashreporter e internet. Por lo tanto, tengo que suponer que este archivo se debe haber generado de alguna manera, pero no puedo entender cómo.

(comentando la línea de PLCrashReport.m en el que se incluye crash_report.pb-c.h resultados en muchos otros errores de compilación.)

Respuesta

5

Tiene usted razón en que el archivo no existe, normalmente, ni tampoco existen crash_report.pb-c.c, que será tu próximo error después de este.

Los archivos crash_report.pb.h y crash_report.pb.c se generan en tiempo de compilación a través de una regla de compilación. Debe agregar un script personalizado a su proceso de compilación para hacerlos.

Primero, asegúrese de tener protoc-c en la carpeta plcrashreporter de su proyecto (plcrashreporter-1.0/Dependencies/protobuf-2.0.3/bin/protoc-c). Lo enterraron profundamente. Esto es lo que ejecutará tu script.

Luego encuentre su archivo crash_report.proto. Esta es la entrada principal que protoc-c utilizará para crear los archivos que faltan. Puede tomar este directorio y ponerlo manualmente en su script, O puede crear una regla para ejecutar el script en cada archivo *.proto. Yo hago esto último.

Luego editar sus reglas de generación para incluir un script que se ejecuta protoc-c con la bandera --c_out="${DERIVED_FILES_DIR}" y su archivo crash_report.proto como dos entradas, esta es la salida crash_report.pb-c.h y crash_report.pb-c.c en el mismo directorio que el archivo donde crash_report.proto es, que ya debería ser accesible en su proyecto.

Las reglas de compilación en Xcode 4 (y superiores) se encuentran en la pestaña de reglas de compilación del objetivo de su proyecto. Agregas una regla de compilación antes que todas tus otras reglas de compilación. Esto es lo que se parece a la mía en Xcode:

Here's what mine looks like in Xcode.

es probable que tenga que jugar con el directorio

Cuestiones relacionadas