2009-07-07 9 views
7

Tengo una aplicación para iPhone que depende en gran medida de la biblioteca OpenCV; como tal, he compilado una versión estática de esta biblioteca para incluirla en mi aplicación. Las instrucciones para hacer esto son relativamente sencillas: Using OpenCV on iPhone. El único problema con el que me encontré fue establecer la bandera del enlazador, STANDARD_C_PLUS_PLUS_LIBRARY_TYPE en "standard". La aplicación compiló y funcionó perfectamente en OS 2.0 y 2.2.Vinculación de bibliotecas estáticas en iPhone SDK 3.0

Después de actualizar a SDK 3.0 e intentar volver a compilar mi aplicación, me sale un problema con esta bandera del enlazador. Estoy recibiendo este error al vincular:

ld: biblioteca no se encontró para -lstdC++ - estática

También es interesante que en mi sistema, "++ libstdc - estática" está presente bajo aparentemente cada iPhoneOS y iPhoneSimulator SDK a excepción de iPhoneOS.platform/SDKs/iPhoneOS3.0.sk. Estos son los resultados de la búsqueda:

$ locate libstdc++-static 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.sdk/usr/lib/libstdc++-static.a 
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libstdc++-static.a 
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/libstdc++-static.a 
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libstdc++-static.a 
/usr/lib/libstdc++-static.a 

estoy bastante desconcertado y no he podido encontrar ninguna respuesta en los foros de Google o iPhone dev. Realmente apreciaría si alguien pudiera arrojar algo de luz aquí.

Gracias!

+0

¿Qué versión de libstdC++ está en OS 3.x? –

Respuesta

1

Solo supongo: intente agregar uno de los directorios a la opción 'Rutas de búsqueda de bibliotecas' en Propiedades de compilación?

+0

Esto funcionó! ¡Gracias! Estaba intentando copiar el archivo de un SDK anterior, pero eso no funcionaba (aunque no estoy seguro de si necesitaba hacer el equivalente de 'ldconfig' para volver a analizar ese directorio, por lo que estaba a punto de reiniciarlo) – pix0r

+0

¡genial! Primero comencé a pensar en LD_LIBRARY_PATH y luego pensé que probablemente estaba en las propiedades. – John

0

Eso es realmente desconcertante, lo único que se me ocurre es que /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk no está en la ruta de búsqueda de la biblioteca, pero eso sería muy poco probable.

+0

Estaba intentando compilar para iPhoneOS, no simulador. Necesita funcionar para ambos. – pix0r

+0

Tienes razón, eso fue solo un deslizándome, ¿dónde está la biblioteca para iPhone entonces? No aparece en su lista ... – hhafez

+0

Bien, ese era el problema;) Parece que Apple lo dejó en SDK 3.0, probablemente sea solo un error. Resulta que la versión 2.2 de la biblioteca funciona bien en 3.0. – pix0r

Cuestiones relacionadas