2017-07-19 51 views
0

我在Xcode之外建立了一个静态库,我想在我的Xcode项目中使用它。我添加了这个库,它显示在Build Phase-> Link Binary With Libraries以及General - > Linked Frameworks和Libraries下。Xcode std :: __ 1 :: basic_ostream未定义的符号

我还增加了以下通用 - >链接的框架和库:

  • 的libC++待定
  • libbz2.tbd
  • libc.tbd

我也加入了。 Build Settings - > Other Linker Flags中的以下标志:

  • -ObjC
  • -lz
  • -lbz2
  • -liconv
  • -lC++
  • -lstdC++

,最后在构建设置 - >苹果LLVM 8.1 - 语言 - C++ - > C++标准库 libstC++(GNU C++标准库)。

所以我认为这是我所需要的,但是当我尝试建立我得到一个编译错误:架构arm64

未定义的符号: “的std :: __ 1 :: basic_ostream> &的std :: __ 1: :运算符< <,std :: __ 1 :: allocator>(std :: __ 1 :: basic_ostream> &,std :: __ 1 :: basic_string,std :: __ 1 :: allocator> const &)“,引用自:.. 。

对我来说,它看起来像C++ 11标准库没有正确链接,我的静态库需要它。

我在这里错过了什么?

回答

0

所以我的解决方案是修改静态库,以便它包含在其本身的标准库。 我猜测,因为这是一个静态库,而不是一个动态库,它会始终在内部寻找依赖关系,即使它们是外部链接的。