24 votos

proyecto de xcode-/-ajustes-sintaxis para enlazador de la bandera force_load en el iPhone

Me enfrento a la situación de doble filo, por una parte, que para uno de la 3ª parte de las bibliotecas estáticas, mi iPhone de la aplicación de los usos, el enlace de la bandera de all_load se ha establecido en el proyecto de aplicación o configuración del destino, de lo contrario, la aplicación se bloquea en tiempo de ejecución no encontrar algunos símbolos, llamada internamente a partir de la lib, en el otro lado para otro de la 3ª parte estática lib -all_load no se debe establecer en el nivel de aplicación, o la aplicación no va a construir gracias a una "duplicación de símbolos"-error del vinculador. Para resolver este problema ahora quiero usar force_load instante de load_all, ya que debido a la documentación que hace el mismo como all_load, pero sólo para el pasado o la ruta de lib-archivo, en lugar de todos los libs. El problema con force_load es, no tengo ni idea, cómo pasar de una ruta de acceso o archivo como un parámetro con que, al pasar a través de proyecto de xcode - o el destino-configuración. Todas las sintaxis de posibilidades de que viene a mi mente, ya sea de plomo en xcode pensando en su otro enlazador de la bandera en lugar de un parámetro a la anterior, o el enlazador es tirar la sintaxis de los errores relacionados con el o la bandera simplemente no hace nada en comparación a no ser. También me abrió la .pbxproj-archivo en un editor de texto para editar a la correcta sintaxis de línea de comandos de forma manual, pero al volver a cargar el proyecto con xcode, automático de los cambios de la sintaxis en la interpretación de los parámetros a force_load por separado como una bandera.

Cualquiera que tenga una idea sobre este tema?

Thx, Kaiserludi.

16voto

par Puntos 4359

He intentado este. He compilado una estática binarios armv6, armv7, y i386 grasa binario de PCRE para su uso en mi iPhone proyecto. Mi proyecto normalmente sólo tiene mi biblioteca añadido al proyecto y que los vínculos de la multa. Así que sin marcar el destino cuadro de pertenencia para libpcre.una y reconstruido. Como era de esperar, me aparecen un montón de falta símbolo de errores del vinculador para la pcre símbolos. Luego abrí el destino de la ventana de configuración y editó el "Otro Enlazador" sección. He añadido:

-force_load lib/pcre/libpcre.a

El lib directorio se encuentra en el mismo directorio de mi proyecto.archivo xcodeproj.

Se enlaza bien sé que el force_load comando trabajado (y puedo ver que es añadido a la acumulación banderas cuando xcode crea el archivo).

Espero que ayude.

Actualización:

También he intentado añadir un sistema de biblioteca a la Otra "Enlazador" línea así:

-force_load src/pcre/libpcre.a -force_load ${SDKROOT}/usr/lib/libz.dylib

Que trabajaba demasiado.

1voto

Steven Kramer Puntos 6122

Acabo de añadir force_load a nuestro proyecto y todo está muy bien el uso de la sintaxis más simple posible. La biblioteca es una dependencia construido en el mismo proyecto. La biblioteca es, por tanto, incluido en el enlace de la línea de comandos dos veces: una vez como una entrada normal de archivo y una vez como un argumento a force_load. Usted podría poner comillas alrededor del argumento.

De hecho, incluso he conseguido este trabajo el uso de la configuración de los valores dependientes (porque el camino es obviamente diferente para depurar frente de liberación de dispositivos y vs simulador).

La buena suerte.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X