2017-01-23 9 views
0

Я пытаюсь создать приложение IOS в XCode8 с некоторым кодом C++, который использует Google Protobuf, но не может заставить его работать.Использование C++ Protobuf в приложении XCode8 IOS

Я пробовал использовать CocoaPods, как описано here и в других местах.

Также попробовал несколько сценариев здания: script1, script2.

Во всех попыток я в конце концов получил:

Undefined symbols for architecture arm64: 
    "google_public::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, google_public::protobuf::io::CodedOutputStream*)", 
    "google_public::protobuf::internal::WireFormat::VerifyUTF8StringFallback(char const*, int, google_public::protobuf::internal::WireFormat::Operation, char const*)", 
    "google_public::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned char*)", 

Со списком некоторых более Protobuf функций реализации, которые отсутствуют.

Есть ли другой способ скомпилировать/использовать библиотеку protobuf XCode для приложения IOS?

+0

Поскольку функции в вопросах - это те, которые используют 'std :: string', интересно, имеет ли это отношение к: http://stackoverflow.com/questions/30124264/undefined-reference-to-googleprotobufinternalempty-string -abicxx11/30175210 –

ответ

0

SOLVED: У меня было несколько версий protobuf над моей системой из всех попыток, и я случайно смешал разные версии для включений, lib и файлов, созданных протоком.

0

Если вы хотите интегрировать код C++, вы должны изменить файл, заканчивающийся на код C++, с .cpp на .mm. Вы это сделали?

+0

Несомненно. Код C++ компилируется и работает хорошо, до использования Protobuf. – Oren