2

我即将开始为 iOS 应用程序编写一个静态库,但遇到了几个问题

  1. 可以在库中使用纯 C++ 并公开具有接受 std::vector 等方法的公共类吗?
    1. 我来自一个强类型的编程世界,比如 C++ 和 C#,而且我更容易将 C++ 用于这个库。
    2. 一般来说,纯 iOS 开发人员可以使用 C++ 代码并将他们的 .m 文件更改为 .mm 吗?
  2. 在 xCode 中,我可以将静态库和演示项目都加载到同一个应用程序中,这样调试起来会更容易吗?
  3. 如何为静态库项目进行构建后步骤,以便将 .a 文件复制到所需位置?
  4. 如何调试静态库?
  5. 一般来说,静态库是 iOS 项目的常见东西,还是每个人都喜欢将源代码嵌入到他们的应用程序中?

非常欢迎任何有关此的文章或书籍。

谢谢

4

1 回答 1

0

这是很多问题,但我有部分答案。

1) 对此不确定,因为我通常不使用 Objective-C++,但第二部分是的,您可以使用 C++(LLVM v3 的 1998 年标准)并将扩展名更改为 .mm 会自动让编译器知道您想使用 Objective-C++ 编译它。

2) 最好的方法是创建一个项目参考。从静态库中创建一个项目,然后将该项目作为另一个项目的子项目拖动。

3) 参见第 2 步,然后在 Build Phases 的 Link With Library 部分添加 .a 文件。

4)由于源代码将显示在您的项目中,我假设您可以简单地放置断点,但我不确定。

5) 是的,制作图书馆很常见。事实上,如果您需要在多个项目中使用相同的代码,那将是愚蠢的。

我敦促您进行跨项目参考,否则我相信您会忘记您需要为每种构建类型(调试/发布和模拟器/设备)编译静态库。跨项目引用将为您解决这个问题。

于 2012-06-25T01:13:54.493 回答