2

I'm working on an iOS project with ~50 dependencies. Almost all of them are managed with cocoapods. Some are opensource code, some are dynamic frameworks, others are static frameworks.

On this project, I want to take advantage of a new API from iOS 12, hence I have to use Xcode 10.

My issue is that it appears that at least 1 dependency uses libstdc++ that have been removed by Apple in Xcode 10 (see here and there), resulting in the following error when I'm trying to build: ld: library not found for -lstdc++.6

I've found that my Pods project is actually linking against libstdc++ as its xconfig files contain OTHER_LDFLAGS = $(inherited) -ObjC (...) -l"stdc++.6" (...) but I've looked in every pod's project and they all use libc++ instead of libstdc++, and none links against libstdc++ in their xconfig file

So where does that lidstdc++ comes from?

Imotep
  • 2,006
  • 2
  • 25
  • 38

1 Answers1

1

I ended up reading every pod's podspec file and eventually found the one using lidstdc++.6

Imotep
  • 2,006
  • 2
  • 25
  • 38
  • You could ascertain whether to look in the dylibs or the main binary, I guess you could run `(lldb) image lookup -rn cout your_app`? At least that would you insight whether the c++ linked library was included inside your main binary (as a static framework) or a dynamic framework? That said, you have to know use a disassembler to check the C++ symbols are inside the app. However, that is not a super quick solution. – rustyMagnet Oct 15 '18 at 09:47