Linker errors when adding firebase infrastructure to ios project

I am trying to add firebase infrastructure to my ios application. I followed the instructions here: https://www.firebase.com/docs/ios-quickstart.html . When I try to compile my project or even the firebase template project, I get a ton of linker erections. (I could insert them here if someone is interested, but this is a lot of text) The firebase framework requires these frameworks, and I will definitely include them all.

libicucore.dylib
CFNetwork.framework
Security.framework
SystemConfiguration.framework

Is there any other framework that is missing but not listed? I have no idea what is going on. Thanks for the help!


Edit: Here are the errors

Undefined symbols for i386 architecture: "std :: 1 :: basic_string, std :: __ 1 :: allocator> :: compare (char const *) const "referenced: leveldb :: VersionSet :: Recover () in Firebase (version_set.o)" std :: _ 1 :: _ vector_base_common :: __ throw_length_error () const "referenced: void std :: _ 1 :: vector> :: _ push_back_slow_path (leveldb :: Iterator * const &) in Firebase (db_impl.o) void std :: _ 1 :: vector> :: _ push_back_slow_path (leveldb :: DBImpl :: CompactionState :: Output const &) in Firebase (db_impl.o) void std :: _ 1 :: vector> :: _ push_back_slow_path (unsigned long long const &) in Firebase (db_impl.o) void std :: _ 1 :: vector, std :: __ 1 :: allocator → :: _ push_back_slow_path const> (std :: __ 1 :: pair const &) in Firebase (db_impl.o) std :: __ 1 :: enable_if <__ is_forward_iterator>:: value, std :: _ 1 :: _ wrap_iter> :: type std :: _ 1 :: vector> :: insert> (std :: _ 1 :: __ wrap_iter, std :: _ 1 :: _ wrap_iter , std :: _ 1 :: _ wrap_iter) in Firebase (version_set.o) std :: _ 1 :: vector> :: _ append (unsigned long) in Firebase (version_set.o) std :: __ 1 :: enable_if <__ is_forward_iterator :: value, void> :: type std :: __ 1 :: vector> :: assign (leveldb :: FileMetaData *, leveldb :: FileMetaData *) in Firebase (version_set.o) ... "std: : __ 1 :: basic_string, std :: __ 1 :: allocator> :: __ init (char const *, unsigned long) "referenced: - [APLevelDB initWithPath: error:] in Firebase (APLevelDB.o) leveldb :: DBImpl :: NewDB () in Firebase (db_impl.o) .dll level :: Status :: ToString () const in Firebase (status.o) leveldb :: VersionSet ::WriteSnapshot (leveldb :: log :: Writer *) in Firebase (version_set.o) leveldb :: VersionSet :: SetupOtherInputs (leveldb :: Compaction *) in Firebase (version_set.o) leveldb :: VersionSet :: Builder :: Apply ( leveldb :: VersionEdit *) in Firebase (version_set.o) leveldb :: SetCurrentFile (leveldb :: Env *, std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, unsigned long long) in Firebase (filename.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: __ init (char const *, unsigned long, unsigned long)" referenced by: leveldb :: DBImpl :: DeleteObsoleteFiles () in Firebase (db_impl.o) leveldb :: DestroyDB (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, leveldb :: Options const &) in Firebase (db_impl.o) leveldb :: VersionSet ::Recover () in Firebase (version_set.o) leveldb :: MakeFileName (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, unsigned long long, char const *) in Firebase (filename.o ) leveldb :: DescriptorFileName (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, unsigned long long) in Firebase (filename.o) leveldb :: CurrentFileName (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase (filename.o) leveldb :: LockFileName (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase ( filename.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: append (char const *)" referenced by: leveldb :: DBImpl :: GetProperty (leveldb: : Slice const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator>*) in Firebase (db_impl.o) leveldb :: Version :: DebugString () const in Firebase (version_set.o) leveldb :: VersionEdit :: DebugString () const in Firebase (version_edit.o) leveldb :: TableBuilder :: Finish () in Firebase (table_builder.o) leveldb :: ParsedInternalKey :: DebugString () const in Firebase (dbformat.o) leveldb :: AppendNumberTo (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> * , unsigned long long) in Firebase (logging.o) leveldb :: AppendEscapedStringTo (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> *, leveldb :: Slice const &) in Firebase (logging.o ) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: append (char const *, unsigned long)" referenced by: leveldb :: WriteBatchInternal :: Append (leveldb: : WriteBatch *, leveldb ::WriteBatch const *) in Firebase (write_batch.o) leveldb :: DBImpl :: DeleteObsoleteFiles () in Firebase (db_impl.o) leveldb :: DestroyDB (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, leveldb :: Options const &) in Firebase (db_impl.o) .dll :: Status :: ToString () const in Firebase (status.o) leveldb :: Version :: DebugString () const in Firebase (version_set .o) leveldb :: VersionSet :: Recover () in Firebase (version_set.o) leveldb :: MakeFileName (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, unsigned long long, char const *) in Firebase (filename.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: assign (char const *)" referenced by: leveldb :: DBImpl :: GetProperty (leveldb :: Slice const &, std :: __ 1 :: basic_string, std ::__ 1 :: allocator> *) in Firebase (db_impl.o) leveldb :: InternalKey :: DebugString () const in Firebase (dbformat.o) leveldb: :( anonymous namespace) :: PosixEnv :: GetTestDirectory (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> *) in Firebase (env_posix.o) "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: assign (char const * , unsigned long) "referenced: leveldb :: WriteBatchInternal :: SetContents (leveldb :: WriteBatch *, leveldb :: Slice const &) in Firebase (write_batch.o) leveldb :: DBImpl :: DoCompactionWork (leveldb :: DBImpl :: CompactionState *) in Firebase (db_impl.o) leveldb :: BuildTable (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, leveldb :: Env *, leveldb :: Parameters const & , leveldb :: TableCache *, leveldb :: Iterator *, leveldb ::FileMetaData *) in Firebase (builder.o) leveldb :: SaveValue (void *, leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (version_set.o) leveldb :: VersionSet :: WriteSnapshot (leveldb :: log :: Writer *) in Firebase (version_set.o) leveldb :: VersionEdit :: DecodeFrom (leveldb :: Slice const &) in Firebase (version_edit.o) leveldb :: TableBuilder :: Add (leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (table_builder.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: resize (unsigned long, char)" referenced : leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: Clear () in Firebase (write_batch.o) leveldb :: VersionSet ::Recover () in Firebase (version_set.o) leveldb: :( anonymous namespace) :: BytewiseComparatorImpl :: FindShortestSeparator (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> *, leveldb :: Slice const &) const in Firebase (comparator.o) leveldb: :( anonymous namespace) :: BytewiseComparatorImpl :: FindShortSuccessor (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> *) const in Firebase (comparator .o) leveldb :: BlockBuilder :: Add (leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (block_builder.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: push_back (char) "referenced by: leveldb :: WriteBatch :: Put (leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (write_batch.o) leveldb :: WriteBatch: : Delete (leveldb ::Slice const &) in Firebase (write_batch.o) leveldb :: Version :: DebugString () const in Firebase (version_set.o) leveldb :: AppendEscapedStringTo (std :: __ 1 :: basic_string, std :: __ 1 :: allocator > *, leveldb :: Slice const &) in Firebase (logging.o) leveldb :: EscapeString (leveldb :: Slice const &) in Firebase (logging.o) leveldb :: FilterBlockBuilder :: Finish () in Firebase (filter_block. o) "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: basic_string (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &)", on which referenced by: leveldb :: DBImpl :: DBImpl (leveldb :: Parameters const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase (db_impl.o) leveldb :: DBImpl: : OpenCompactionOutputFile (leveldb :: DBImpl ::CompactionState *) in Firebase (db_impl.o) leveldb :: VersionEdit :: AddFile (int, unsigned long long, unsigned long long, leveldb :: InternalKey const &, leveldb :: InternalKey const &) in Firebase (db_impl.o) void std :: _ 1 :: vector> :: _ push_back_slow_path (leveldb :: DBImpl :: CompactionState :: Output const &) in Firebase (db_impl.o) void std :: _ 1 :: vector, std :: __ 1: : allocator → :: _ push_back_slow_path const> (std :: __ 1 :: pair const &) in Firebase (db_impl.o) std :: _ 1 :: vector, std :: __ 1 :: allocator → :: _ swap_out_circular_buffer (std :: _ 1 :: _ split_buffer, std :: __ 1 :: allocator> &> &) in Firebase (db_impl.o) .dll :: Status :: ToString () const level in Firebase (status.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: ~ basic_string ()",referenced by: - ​​[APLevelDB initWithPath: error:] in Firebase (APLevelDB.o) - [APLevelDB dataForKey:] in Firebase (APLevelDB.o) - [APLevelDB stringForKey:] in Firebase (APLevelDB.o) leveldb :: : WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: ~ WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: ~ WriteBatch () in Firebase (write_batch.o) ... "std :: __ 1 :: basic_string, std :: __ 1 :: allocator> :: operator = (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) "referenced: leveldb :: DBImpl :: NewDB () in Firebase (db_impl.o) leveldb :: DBImpl :: TEST_CompactRange (int, leveldb :: Slice const *, leveldb: : Slice const *) in Firebase (db_impl.o) leveldb :: DBImpl :: BackgroundCompaction () in Firebase (db_impl.o) leveldb :: DBImpl :: GetProperty (leveldb :: Slice const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator > *) in Firebase (db_impl.o) leveldb :: VersionEdit :: AddFile (int, unsigned long long, unsigned long long, leveldb :: InternalKey const &, leveldb :: InternalKey const &) in Firebase (db_impl.o) leveldb :: VersionSet :: LogAndApply (leveldb :: VersionEdit *, leveldb :: port :: Mutex *) in Firebase (version_set.o) leveldb :: VersionSet :: WriteSnapshot (leveldb :: log :: Writer *) in Firebase (version_set .o) ... "void std :: _ 1 :: _ sort &, unsigned long long *> (unsigned long long *, unsigned long long *, std :: _ 1 :: _ less &)", on which reference: leveldb :: DBImpl :: Recover (leveldb ::VersionEdit *) in Firebase (db_impl.o) "std :: terminate ()" referenced by: leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: SanitizeOptions (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &, leveldb :: InternalKeyComparator const *, leveldb :: InternalFilterPolicy const *, leveldb :: Options const &) in Firebase (db_impl.o) leveldb :: DBImpl :: DBImpl (leveldb :: Parameters const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase (db_impl. o) leveldb :: DBImpl :: ~ DBImpl () in Firebase (db_impl.o) leveldb :: DBImpl :: NewDB () in Firebase (db_impl.o) leveldb :: DBImpl :: MaybeIgnoreError (leveldb :: Status *) const in Firebase (db_impl.o) ... "vtable for _cxxabiv1 :: _ class_type_info "referenced: typeinfo for leveldb :: WriteBatch :: Handler in Firebase (write_batch.o) typeinfo for leveldb :: DB in Firebase (db_impl.o) typeinfo for leveldb :: Snapshot in Firebase (db_impl.o) typeinfo for leveldb :: Comparator in Firebase (comparator.o) typeinfo for leveldb :: Cache in Firebase (cache.o) typeinfo for leveldb :: FilterPolicy in Firebase (filter_policy.o) typeinfo for leveldb :: Env in Firebase (env.o) ... NOTE: A missing virtual table usually means that the first function of a non-built-in virtual member has no definition. "vtable for _cxxabiv1 :: _ si_class_type_info" referenced by: typeinfo for leveldb: :( anonymous pro transtvo names) :: MemTableInserter in Firebase (write_batch.o) typeinfo for leveldb :: DBImpl in Firebase (db_impl.o) typeinfo for leveldb :: DBImpl :: RecoverLogFile (unsigned long long, leveldb :: VersionEdit *, unsigned long long *) :: LogReporter in Firebase (db_impl.o) typeinfo for leveldb :: SnapshotImpl in Firebase (db_impl.o) typeinfo for leveldb :: VersionSet :: Recover () :: LogReporter in Firebase (version_set.o) typeinfo for leveldb :: Version :: LevelFileNumIterator in Firebase (version_set.o) typeinfo for leveldb: :( anonymous namespace) :: BytewiseComparatorImpl in Firebase (comparator.o) ... NOTE. A missing virtual table usually means that the first function of a non-built-in virtual member has no definition. the "delete statement" referenced by: - ​​[APLevelDB initWithPath: error:] in Firebase (APLevelDB.o) - [APLevelDB setData: forKey:] in Firebase (APLevelDB.o) - [APLevelDB setString: forKey:] in Firebase (APLevelDB.o) - [APLevelDB dataForKey:] in Firebase (APLevelDB.o) - [APLevelDB.o) ] in Firebase (APLevelDB.o) - [APLevelDB removeKey:] in Firebase (APLevelDB.o) - [APLevelDB commitWriteBatch:] in Firebase (APLevelDB.o) ... "delete (void *) statement" referenced by: leveldb :: WriteBatch :: Handler :: ~ Handler () in Firebase (write_batch.o) leveldb: :( anonymous namespace) :: MemTableInserter :: ~ MemTableInserter () in Firebase (write_batch.o) leveldb :: DBImpl :: DBImpl (leveldb :: Parameters const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase (db_impl.o) leveldb :: DBImpl :: ~ DBImpl () in Firebase ( db_impl.o) leveldb :: DBImpl :: ~ DBImpl () in Firebase (db_impl.o) leveldb :: DBImpl :: DeleteObsoleteFiles () in Firebase (db_impl.o) leveldb :: DBImpl :: Recover (leveldb :: VersionEdit *) in Firebase (db_impl.o) ... "new [] operator (unsigned long)" referenced by: leveldb :: Status :: CopyState (char const *) in Firebase (status.o) leveldb :: Status :: Status (leveldb :: Status :: Code, leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (status.o) leveldb :: Status :: Status (leveldb :: Status :: Code, leveldb :: Slice const &, leveldb :: Slice const &) in Firebase (status.o) leveldb :: VersionSet :: MakeInputIterator (leveldb :: Compaction *) in Firebase (version_set.o) leveldb: :( anonymous namespace) :: HandleTable: : Resize () in Firebase (cache.o) leveldb :: LookupKey ::LookupKey (leveldb :: Slice const &, unsigned long long) in Firebase (dbformat.o) leveldb :: LookupKey :: LookupKey (leveldb :: Slice const &, unsigned long long) in Firebase (dbformat.o) ... " new (unsigned long) operator referenced: leveldb :: DBImpl :: DBImpl (leveldb :: Parameters const &, std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const &) in Firebase (db_impl.o) leveldb :: DBImpl :: RecoverLogFile (unsigned long long, leveldb :: VersionEdit *, unsigned long long *) in Firebase (db_impl.o) leveldb :: DBImpl :: BackgroundCompaction () in Firebase (db_impl.o ) leveldb :: DBImpl :: OpenCompactionOutputFile (leveldb :: DBImpl :: CompactionState *) in Firebase (db_impl.o) leveldb :: DBImpl :: NewInternalIterator (leveldb :: ReadOptions const &,unsigned long long *) in Firebase (db_impl.o) leveldb :: DBImpl :: GetSnapshot () in Firebase (db_impl.o) leveldb :: DBImpl :: MakeRoomForWrite (bool) in Firebase (db_impl.o) ... "_cxa_begin_catch "referenced by: std :: 1 :: deque> :: __ add_back_capacity () in Firebase (db_impl.o) leveldb: :( anonymous namespace) :: PosixEnv :: Schedule (void () (void), void *) in Firebase (env_posix.o) " _cxa_call_unexpected" referenced by: leveldb :: DBImpl :: DeleteObsoleteFiles () in Firebase (db_impl.o) leveldb :: DBImpl :: Recover (leveldb :: VersionEdit *) in Firebase (db_impl.o) leveldb :: DBImpl :: CleanupCompaction (leveldb :: DBImpl :: CompactionState *) in Firebase (db_impl.o) leveldb :: DestroyDB (std ::1 :: basic_string, std :: __ 1 :: allocator> const &, leveldb :: const &) options in Firebase (db_impl.o) void std :: _ 1 :: vector> :: _ push_back_slow_path (leveldb :: DBImpl :: CompactionState :: Output const &) in Firebase (db_impl.o) void std :: _ 1 :: vector, std :: __ 1 :: allocator → :: _ push_back_slow_path const> (std :: __ 1 :: pair const &) in Firebase (db_impl.o) leveldb :: VersionEdit :: ~ VersionEdit () in Firebase (db_impl.o) ... " _cxa_end_catch" referenced by: std :: 1 :: deque> :: __ add_back_capacity () in Firebase (db_impl.o) leveldb: :( anonymous namespace) :: PosixEnv :: Schedule (void () (void), void *) in Firebase (env_posix.o) "_cxa_pure_virtual "referenced: vtable for leveldb :: WriteBatch :: Handler in Firebase (write_batch.o) vtable for leveldb :: DB in Firebase (db_impl.o) vtable for leveldb :: Comparator in Firebase (comparator.o) vtable for leveldb :: cache in Firebase (cache.o) vtable for leveldb :: FilterPolicy in Firebase (filter_policy.o) vtable for leveldb :: Env in Firebase (env.o) vtable for leveldb :: SequentialFile in Firebase (env.o ) ... " _cxa_rethrow" referenced by: std :: _ 1 :: deque> :: _ add_back_capacity () in Firebase (db_impl.o) leveldb: :( anonymous namespace) :: PosixEnv :: Schedule (void () (void), void *) in Firebase (env_posix.o) "referenced _gxx_personality_v0 ": Dwarf Exception Unwind Info (__eh_frame) in Firebase (APLevelDB.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (write_batch.o) Dwarf Exception Unwind Info (__eh_fobb.dimbfb) Dwarf Exception Unwind Info (__eh_frame) in Firebase (status.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (builder.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (version_set.o) Dwarf Exception Unwind Info (__eh_f_ (table_cache.o) ... leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) leveldb :: WriteBatch :: WriteBatch () in Firebase (write_batch.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase ( APLevelDB.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (write_batch.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (db_impl.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (status.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (builder.o) Dwarf Exception ___hw Info ) in Firebase (version_set.o) Dwarf Exception Unwind Info (__eh_frame) in Firebase (table_cache.o) ... leveldb :: SanitizeOptions (std :: __ 1 :: basic_string, std :: __ 1 :: allocator> const & , leveldb :: InternalKeyComparator const *, leveldb :: InternalFilterPolicy const *, leveldb :: Options const &) in Firebase (db_impl. o) leveldb :: DBImpl :: DBImpl (leveldb :: Parameters const &, std :: __ 1: : basic_string, std :: __ 1 :: allocator> const &) in Firebase (db_impl.o) leveldb :: DBImpl :: ~ DBImpl () in Firebase (db_impl.o) ... ld:character not found for i386 clang architecture: error: linker command did not work with exit code 1 (use -v to call the call)

+4
3

. , lib++. Dylib , .

, , arm64. , : https://cdn.firebase.com/ObjC/Firebase.framework-1.0.9.zip

, .

!

+2

, -ObjC . , u :

libicucore.dylib
CFNetwork.framework
Security.framework
SystemConfiguration.framework

, .

+1

This is what was mentioned on the firebase website.

3) Firebase uses Objective-C classes and categories, so you need to add this under the “other linker flags” in the build settings: -ObjC

0
source

All Articles