2017-07-19 87 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

所以我的解決方案是修改靜態庫,以便它包含在其本身的標準庫。 我猜測,因爲這是一個靜態庫,而不是一個動態庫,它會始終在內部尋找依賴關係,即使它們是外部鏈接的。