在iOS上使用C ++代码,创建静态库或与Objective C混合?

时间:2013-08-14 11:51:45

标签: c++ ios objective-c c static-libraries

我有一些C ++代码(通过标题暴露一个只有C的接口),我将用于iOS项目。

我可以创建一个静态库并从我的应用程序项目链接到这个,或者将源文件直接添加到应用程序项目 - 哪个选项最好?

所有答案都赞赏!

4 个答案:

答案 0 :(得分:1)

如果您希望它们经常更改,请添加源。否则,库将更合适,并使您的项目更清洁(但是,您只需要在项目中放置头文件)

答案 1 :(得分:1)

我在我的一个应用程序项目中使用过OpenCV,这些项目主要是用C ++编写的。我发现将源文件添加到应用程序项目对我来说效果更好,因为我在适当的地方对代码进行了一些小的更改。基本上归结为用例。

答案 2 :(得分:1)

我总是喜欢添加源代码,只是因为它使调试更容易。如果您正在调用库例程并获得意外结果(或崩溃等),则使用调试器进入库代码并找出正在发生的事情会更容易。如果你只有一个静态库,它就是一个黑盒子,你无法看到里面发生了什么。如果遇到错误或缺少功能,它还允许您更轻松地更改库代码(如果库与其他项目共享,请务必小心,以确保在自己的存储库中保持库代码最新)。

Xcode非常适合让您保持项目的有序性,因此请利用这些功能。将库代码和标题与主应用程序分开,并根据需要将其链接。

答案 3 :(得分:0)

我认为通过代码你并不意味着一个格式良好的库,所以我希望这段代码将来可能会受到任何修改压力。最好的方法是包装它。这是一个非常好的例子,但你可能会采用不同的方式:http://robnapier.net/blog/wrapping-cppfinal-edition-759