2012-06-25 70 views
2

我要开始写一个静态库的iOS应用程序的方法,并得到了几个问题最佳生成静态库

  1. 它是确定使用纯C++库内部和公开的公共类,做有方法接受std :: vector等?
    1. 我现在是强类型的编程世界未来如C++和C#和更加容易的,我使用C++这个库。
    2. 一般来说,纯iOS开发者是否可以使用C++代码并将.m文件改为.mm?
  2. 在xCode中,我可以同时将静态库和演示项目加载到同一个应用程序中,因此调试起来会更容易?
  3. 如何为静态库项目制作后期构建步骤,以便将.a文件复制到需要的位置?
  4. 如何调试静态库?
  5. 一般来说,静态库是iOS项目的常见工具,还是大家都喜欢将源代码嵌入到应用程序中?

这方面有任何文章或书籍都非常欢迎。

THX

回答

0

这是一个很大的问题,但我有部分答案。 1)不确定这一点,因为我通常不使用Objective-C++,但第二部分是你可以使用C++(LLVM v3的1998标准),并将你的扩展名改为.mm将自动让编译器知道你想用Objective-C++编译它。

2)要做到这一点,最好的方法是创建一个项目引用。从静态库中创建项目,然后将该项目作为其他项目的子项目拖动。

3)见第2步,然后添加某文件在您的链接随着构建阶段库一节。

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

5)是的,使得库是很常见的。事实上,如果你需要在多个项目中使用相同的代码,那将是愚蠢的。

我希望你做一个跨项目引用,否则我敢肯定,你会忘了你需要编译静态库的每个生成类型(调试/释放和模拟器/设备)。交叉项目引用将为您处理这个问题。

+0

Thx for comments。主认为我想知道是否硬核iOS开发人员愿意使用C++对象而不是Obj-C,因此我很难卖这个库? :) 另外,我如何做一个跨项目参考? – Eugen

+0

您只需将您的项目文件拖到另一个项目的文件区域(如添加声音剪辑或其他东西)即可。确保将其放在项目图标上,并显示出来。但要小心,不要在任何其他Xcode窗口中打开它。您只能在一个Xcode窗口中打开任何给定的项目,否则它将自动失败。至于第一个问题,很难,但是你应该把它作为一个C++库来推销。这样Obj-C程序员就会知道该期待什么。 – borrrden

+0

thx,它看起来像我不得不重新考虑我的想法,而是使用Obj-C构建一个库。最后是营销和收入是最主要的东西:) – Eugen