2 Replies Latest reply on Dec 16, 2016 2:05 AM by Adam Shepherd

    Undefined symbols since upgrading to XCode 8

    Adam Shepherd

      Hi,

       

      We are trying to get our mobile code to compile with Rhodes 5.5.0.7 and Xcode 8 but are getting errors such as:

       

      Undefined symbols for architecture arm64:

        "rho::db::CDBAdapter::isTableExist(std::string)", referenced from:

            rho::CNewORMModelImpl::initDbSchema(rho::apiGenerator::CMethodResult&) in libCoreAPI.a(NewORMModelImpl.o)

        "rho::common::CRhoFile::loadTextFile(char const*, std::string&)", referenced from:

            rho::CFileSingletonImpl::read(std::string const&, rho::apiGenerator::CMethodResult&) in libCoreAPI.a(FileImpl.o)

        "rho::common::CRhoFile::readString(std::string&)", referenced from:

            rho::CRhoFileImpl::readAll(rho::apiGenerator::CMethodResult&) in libCoreAPI.a(FileImpl.o)

        "std::string::compare(unsigned long, unsigned long, char const*) const", referenced from:

            CNetworkDetectionBase::SetHost(std::string const&) in libCoreAPI.a(NetworkDetectBase.o)

        "rho::common::CAppMenu::getMenuItemsEx(rho::Vector<rho::Hashtable<std::string, std::string> >&, bool)", referenced from:

            rho::CApplicationImpl::getNativeMenu(rho::apiGenerator::CMethodResult&) in libCoreAPI.a(ApplicationImpl.o)

        "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:

            std::_Rb_tree<std::string, std::pair<std::string const, rho::common::IRhoExtension*>, std::_Select1st<std::pair<std::string const, rho::common::IRhoExtension*> >, std::less<std::string>, std::allocator<std::pair<std::string const, rho::common::IRhoExtension*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, rho::common::IRhoExtension*> const&) in libCoreAPI.a(ConfigBase.o)

            std::_Rb_tree<std::string, std::pair<std::string const, std::string (*)(std::string const&, rho::json::CJSONArray&, std::string const&, std::string const&, std::string const&)>, std::_Select1st<std::pair<std::string const, std::string (*)(std::string const&, rho::json::CJSONArray&, std::string const&, std::string const&, std::string const&)> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string (*)(std::string const&, rho::json::CJSONArray&, std::string const&, std::string const&, std::string const&)> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, std::string (*)(std::string const&, rho::json::CJSONArray&, std::string const&, std::string const&, std::string const&)> const&) in libCoreAPI.a(network_js_api.o)

            std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, std::string> const&) in libCoreAPI.a(Network_js_wrap.o)

            std::_Rb_tree<std::string, std::pair<std::string const, rho::INetwork*>, std::_Select1st<std::pair<std::string const, rho::INetwork*> >, std::less<std::string>, std::allocator<std::pair<std::string const, rho::INetwork*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, rho::INetwork*> const&) in libCoreAPI.a(NetworkImpl.o)

            std::_Rb_tree<std::string, std::pair<std::string const, rho::Hashtable<std::string, std::string> >, std::_Select1st<std::pair<std::string const, rho::Hashtable<std::string, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, rho::Hashtable<std::string, std::string> > > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, rho::Hashtable<std::string, std::string> > const&) in libCoreAPI.a(NetworkImpl.o)

            std::_Rb_tree<std::string, std::pair<std::string const, rho::INewORM*>, std::_Select1st<std::pair<std::string const, rho::INewORM*> >, std::less<std::string>, std::allocator<std::pair<std::string const, rho::INewORM*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, rho::INewORM*> const&) in libCoreAPI.a(NewORMImpl.o)

            std::_Rb_tree<std::string, std::pair<std::string const, rho::apiGenerator::CMethodAccessor<rho::ISystemSingleton>*>, std::_Select1st<std::pair<std::string const, rho::apiGenerator::CMethodAccessor<rho::ISystemSingleton>*> >, std::less<std::string>, std::allocator<std::pair<std::string const, rho::apiGenerator::CMethodAccessor<rho::ISystemSingleton>*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::string const, rho::apiGenerator::CMethodAccessor<rho::ISystemSingleton>*> const&) in libCoreAPI.a(SystemBase.o)

            ...

        "rho::LogSettings::setExcludeFilter(std::string const&)", referenced from:

            rho::CLogImpl::setExcludeFilter(std::string const&, rho::apiGenerator::CMethodResult&) in libCoreAPI.a(LogImpl.o)

       

      This occurs for each architecture that is built.

       

      The same code works on another mac with XCode 7.3.1 but not XCode 8.0(8A218a)

       

      Any advise very gratefully received.

       

      Thanks


      Adam