Yerel iOS uygulamasında üçüncü parti çerçeveleri kullanıyorum (.a kitaplıkları grubu). Uygulamam XCode 5 base SDK 7.0 ile geliştirilmiştir.Dağıtım hedefi olduğunda mimarlık hatası için tanımlanmamış semboller 7.0
Kütüphaneler, dağıtım hedefi 6.1 olduğunda kütüphaneyi derler ve bağlar (kitaplık ve üstbilgi arama yolları iyidir). Ben dağıtım hedefini değiştirmek Ancak, 7.0 olmak gerekirse, aşağıdaki bağlayıcı hatayı alıyorum:
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)
...
Kütüphaneler, biraz eski bir uyumsuzluk sorunu olup olmadığından emin değilim. IOS 6'yı desteklemeyi planlamıyorum, bu nedenle dağıtım hedefini 7.0 olarak ayarlamam gerekiyor. Her türlü yardım/yön harika olurdu.
bu i386 için derlenmiş alıyorsanız bir nedeni çözüldü? Sanırım i386'yı hedef kurulum ayarlarından kaldırmanız gerekiyor, böylece sadece armv7 ve armv7'ler var. – Justin
Mimarlarla oynamayı denedim. Mimarlık meselesi olduğunu düşünmüyorum. Bu arada, kütüphaneler sadece armv7'yi destekliyor, bu yüzden armv7'ler sorunun dışında kalıyor. – Guven
Seni duyuyorum, ama hatanın en üstünde, mimarlık i386 diyor. Görünüşe göre bu, ya :-) – Justin