使用 c++/目标C++库时出现链接器错误

Linker errors when using a c++/Objective C++ library

本文关键字:链接 错误 c++ 目标 C++ 使用      更新时间:2023-10-16

我正在尝试为 iOS 构建一个静态库。我有 4 个带有 Objective-C++ 包装器的C++类。它似乎构建良好,但是当我尝试运行我的单元测试时,我收到一堆类似于下面的链接器错误。我需要添加一些命令才能使用我的库吗?

(null): "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from:

编辑:

我通过将libc ++ .dylib框架添加到两个目标来解决这个问题。

预感:库和单元测试目标在它们使用哪个C++标准库方面存在分歧。仔细检查两个目标中的生成设置。

  • 在 Xcode 4.6 中,该设置位于标题"Apple LLVM 编译器 4.2 - 语言"下
  • 在Xcode 5中,该设置位于标题"Apple LLVM 5.0 - 语言 - C++"下

在这两种情况下,设置都命名为"C++标准库"(duh!),两个目标应该就它们使用 libstdc++ 还是 libc++ 达成一致。