xcode - IOS7(solo) problema de enlace stdlibc++
libstdc++ (4)
Necesito ayuda. Tenía un framwork que estaba usando stdc ++ como std: string. Ahora cuando he creado una nueva aplicación para IOS7, solo hay un problema al vincular este framework debido a problemas con stdc ++ lib:
Símbolos no definidos para la arquitectura armv7 "std :: basic_string, std :: allocator> :: _ Rep :: _ S_empty_rep_storage", a la que se hace referencia desde ...
He descubierto algo extraño que cuando cambio el objetivo de Deplyment a ios6 en esta aplicación todo está funcionando bien. Con iOS7 veo errores.
Ya tengo bandera establecida en otros indicadores del enlazador: -lstdc ++
¿Alguna idea de lo que estoy haciendo mal?
Gracias por tu ayuda. He encontrado una solución. Estaba usando la bandera -lstdc ++ en otras banderas del enlazador, pero ahora no es suficiente. Tuve que agregar "libstdc ++. 6.0.9.dylib en BuildPhases-> Link Binary With Libraries. Había en algún lugar de la información de red que xcode tiene problemas con la selección lib de ios7 stdc ++ y debe seleccionarse manualmente.
Saludos, Marek
Para ser sincero, no me gusta la respuesta anterior, ¡ya que usa la lib estática y no la dinámica!
Yo mismo tuve el problema y descubrí que el problema es que xcode no puede encontrar ningún archivo C ++ en su proyecto y asume que no es necesario libstc ++.
¡Muy molesto cuando estás enlazando a una lib estática que lo usa!
Solución:
- ¡Agregue un archivo .mm vacío a su proyecto!
- Asegúrese de que la biblioteca estándar de C ++ esté configurada en libstdc ++ (biblioteca estándar de GNU C ++) en la configuración de compilación.
¡Esto funcionó para mí y no tuve que agregar -lstdc ++ a otras banderas enlazadoras !
Espero que ayude a otros con el mismo problema.
Solo una actualización de esta respuesta:
¡Este paso es muy importante!
Asegúrese de que C ++ Standard Library esté establecida en libstdc ++ (biblioteca estándar GNU c ++) en la configuración de compilación del compilador Apple LLVM 5.0
Fondo:
Tengo una aplicación de iOS que dejó de construir para iOS 7 con errores de enlace de biblioteca estándar. Estuve probando la aplicación con éxito en el simulador y en un iPad mini, y también la archivé, pero cuando agregué un iPhone 5S para probar, comencé a recibir errores de enlace (posiblemente debido a una nueva arquitectura en la mezcla?).
Al buscar los errores de enlace en Google, encontré consejos para agregar explícitamente libstdc ++. Dylib a las bibliotecas vinculadas. Esto no funcionó.
Experimenté agregando libstdc ++. 6.dylib a las bibliotecas vinculadas; esto eliminó los errores de enlace, pero la aplicación se bloqueó en el código estándar de la biblioteca C ++ muy temprano.
La eliminación de las adiciones explícitas de la biblioteca y el cambio de la configuración del compilador en Configuración de compilación, como se indicó anteriormente, corrigió los errores de enlace y el problema de tiempo de ejecución.
¡Gracias a rimestad por el puntero!
Tuve un problema similar, pero la respuesta de @ MarekM solo solucionó parte de mi problema, así que traté de agregar libstdc ++. Dylib y libstdc ++. 6.dylib, y eso hace que desaparezca todo el error de compilación.