转载请注明原创地址:http://blog.csdn.net/iflychenyang/article/details/8564679
用C++写出来的代码在ios上编译成lib,然后集成到其他工程中,会出现类似以下的错误信息:
Undefined symbols for architecture i386:
"YANGCHEN::CoreSetting::setChannel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
-[BlcObject initWithAid:theChannel:theServerURL:theLogURL:theRelativePath:] in BlcObject.o
"std::istream::gcount() const", referenced from:
Poco::XML::ParserEngine::readChars(std::istream&, char*, int) in libPocoXML.a(ParserEngine.o)
Poco::XML::ParserEngine::readBytes(std::istream&, char*, int) in libPocoXML.a(ParserEngine.o)
"std::string::end() const", referenced from:
int Poco::icompare<std::string>(std::string const&, std::string const&) in libPocoNet.a(HTTPMessage.o)
Poco::Net::HTTPRequest::getCredentials(std::string const&, std::string&, std::string&) const in libPocoNet.a(HTTPRequest.o)
Poco::Net::HTTPRequest::getCookies(Poco::Net::NameValueCollection&) const in libPocoNet.a(HTTPRequest.o)
int Poco::icompare<std::string>(std::string const&, std::string const&) in libPocoNet.a(HTTPRequest.o)
Poco::Net::HTTPResponse::getCookies(std::vector<Poco::Net::HTTPCookie, std::allocator<Poco::Net::HTTPCookie> >&) const in libPocoNet.a(HTTPResponse.o)
int Poco::icompare<std::string>(std::string const&, std::string const&) in libPocoNet.a(HTTPResponse.o)
Poco::URI::getPathSegments(std::string const&, std::vector<std::string, std::allocator<std::string> >&) in libPocoFoundation.a(URI.o)
解决方法:
In main project -> Build Settings scroll and find out the options, C++ Language Dialect and C++ Standard Library. Select options "Compiler Default" for both of them. (This is the step I missed, It is needed because newest XCode template has compiler default settings different to what they were in older versions).
参考:
http://stackoverflow.com/questions/12968369/undefined-symbols-for-architecture-armv7-when-using-zxing-library-in-xcode-4-5