Símbolos no definidos para error de architecture cuando el objective de implementación es 7.0

Uso frameworks de terceros en mi aplicación de iOS nativa (un montón de bibliotecas .a). Mi aplicación está desarrollada con XCode 5 base SDK 7.0.

Las bibliotecas comstackn y vinculan bien cuando el destino de deployment es 6.1 (las routes de búsqueda de bibliotecas y encabezados son buenas). Sin embargo, cuando cambio el destino de implementación para que sea 7.0, obtengo el siguiente error del linker:

Undefined symbols for architecture i386: "std::string::find_last_of(char const*, unsigned long) const", referenced from: GetExecutionDir(ECTemplateString<char>&, char*, bool) in myLibrary.a(moPlatForm.o) "std::string::find(char const*, unsigned long) const", referenced from: ParseLog(std::string const&, unsigned int&, CmoDateTime&, int&, std::string&) in myLibrary.a(AppLog.o) "std::string::size() const", referenced from: mo::CmoParam::WriteToStream(void*, mo::STREAM_STATE*) in myLibrary.a(moParams.o) "std::string::c_str() const", referenced from: GetExecutionDir(ECTemplateString<char>&, char*, bool) in myLibrary.a(moPlatForm.o) CMocaFileTransfer::UpdateParamsForGetTraceFiles(mo::CmoParamList&, long) in myLibrary.a(RobieFileTransfer.o) CMocaFileTransfer::AddTraceFileForUpload(std::string const&, std::string const&) in myLibrary.a(RobieFileTransfer.o) CMocaFileTransfer::CreateParamsForSendTraceFiles(mo::CmoObject&) in myLibrary.a(RobieFileTransfer.o) mo::CmoParam::WriteToStream(void*, mo::STREAM_STATE*) in myLibrary.a(moParams.o) ParseLog(std::string const&, unsigned int&, CmoDateTime&, int&, std::string&) in myLibrary.a(AppLog.o) CAppLog::LogExists(unsigned int) in myLibrary.a(AppLog.o) ... 

Las bibliotecas son un poco viejas, no estoy seguro de si hay un problema de compatibilidad. No planeo admitir iOS 6, así que necesito configurar el objective de implementación como 7.0. Cualquier tipo de ayuda / dirección sería genial.

para mí, incluido el ' stdc ++. 6.0.9.dylib ' en lugar de ' stdc ++. dylib ' en las dependencies resolvió también los errores del linker

Resulta que si XCode no puede encontrar ningún file C ++ en el proyecto, entonces supone que libstd ++ no es necesario. Por lo tanto, debe agregar manualmente un file C ++ al proyecto (un file .mm vacío sería suficiente). Esa es la solucion

Todos los créditos van a esta respuesta en este hilo de Stackoverflow .

Parece que myLibrary.a se creó con llamadas al código C ++ y utilizó libstdc ++ como su biblioteca estándar C ++. Es probable que su proyecto de aplicación especifique libc ++, tal vez como el valor pnetworkingeterminado del comstackdor.

Intenta volver a libstdc ++ y ver si los errores desaparecen (o al less cambiar). Es probable que su solución sea una biblioteca construida contra la nueva biblioteca estándar.