para mac for descargar ios objective-c c xcode6 x86-64

ios - mac - Símbolos indefinidos para arquitectura x86_64 en Xcode 6.3



xcode for windows (1)

Descargué e intenté construir tu proyecto. Al observar los errores del enlace, por ejemplo, init_stack_remove_data no se encuentran, son correctos. No hay una definición de init_stack_remove_data en ninguna parte en la fuente de su proyecto.

En la salida "nm -arch x86_64" que cita anteriormente, tenga en cuenta que la "U" antes de una definición de función indica un uso de esa función, no una definición de la misma. La salida nm muestra que el enlazador es correcto: el código llama a esas funciones, pero nunca se definen. Cuando están definidos, verá una "T" antes de la función en la salida nm.

Debe actualizar su proyecto con el resto de la fuente necesaria antes de que se vincule sin errores.

Estoy finalizando una biblioteca CometD codificada en Open Source C, pensé que sería una buena idea abrirla para usuarios de OSX / iOS, como yo.

Para facilitar el trabajo para los desarrolladores de OSX / iOS, quería cambiar de una biblioteca de C estática a una biblioteca estática de iOS de Xcode. Así que seguí los consejos encontrados en la red y generé una biblioteca estática compatible con iOS.

El problema es que, cada vez que intento utilizarlo, aparece un error de tipo:

Símbolos indefinidos para arquitectura x86_64: ******, referenciados desde: - ********** en *******. A (*******. O)

Este error se repite para casi todas las funciones de C que tengo en mi biblioteca.

Primero pensé que tal vez la biblioteca no es x86_64 compatible , está vacía, o realmente no tiene ningún símbolo x86_64 en ella.

Así que he comprobado con un "lipo -info" en la biblioteca y aquí está la respuesta:

Para estar realmente seguro, también usé "nm -arch x86_64" en la biblioteca, y fui a buscar varias funciones no definidas reportadas por Xcode como errores. Pensé que estaría equivocado y no encontraría nada más que adivinar qué?

Encontré los símbolos:

Así que mi pregunta es:

Si los símbolos están presentes en una biblioteca compatible con x86_64, ¿por qué Xcode provoca este error? Incluso si compilo la biblioteca para todos los tipos de brazo * / s, todavía estoy recibiendo este error x86_64.

¿Soy inconsciente de algo o simplemente lo estoy haciendo mal?

Tus respuestas siempre son apreciadas.

Actualización (Este es el enlace al Proyecto Xcode): https://github.com/GhostGumm/CometD-x86_64-issue

Actualización 2 : el Sr. Trojanfoe me llamó la atención sobre una advertencia de enlace que tenía al compilar. De hecho, el enlazador parecía fallar en cargar la biblioteca en busca de un directorio que no existía. Después de mover la biblioteca al directorio correcto, vinculándola manualmente, el error x86_64 desapareció.

Lamentablemente el problema sigue presente. Justo después de una compilación exitosa, intenté usar la biblioteca, pero cuando "asigné" e "inicié" mi clase principal de esta forma:

ZetaFactory *Client = [[ZetaFactory alloc] init];

El error x86_64 vuelve rugiendo con la feroz y genuina de mil millones de soles. Publiqué el enlace al proyecto Xcode, por favor siéntase libre de probarlo ya que no tengo más ideas sobre cómo solucionarlo, pero lo más importante es por qué y dónde se llena de errores.

Sin embargo seguiré investigando.