将库包含为二进制与源的注意事项

Lee*_*ile 7 c iphone

我正在尝试为iPhone编写SSH客户端,我想使用libssh2开源库来实现.它是用C语言写的.

我应该如何为我的iPhone应用程序包含此C库?我应该将它编译成我包含在我的应用程序中的二进制文件,还是将所有源代码添加到我的项目中并尝试将其与我的应用程序的其余部分一起编译?

amr*_*rox 3

我将这个问题解释为:

“我应该编译一次 C 库代码,并将二进制库包含在我的项目中吗?还是应该包含所有源代码并在每次构建应用程序时编译它?”

这取决于。我工作的项目之一依赖于几个外部库。基本上,我们有一个简单的规则:

  • 您认为您需要经常更改 C 库中的代码吗?

    • 如果您要更改代码或经常更新版本,请包含源代码并与项目的其余部分一起构建它。
    • 如果您不打算经常更改代码或根本不更改代码,那么在项目中包含预构建的二进制文件可能是有意义的。

根据库的大小,您可能希望将其设置为项目中的不同目标,或者为了获得更大的灵活性,将其设置为主项目的子项目。

如果我处于你的位置,我会提前构建 libssh2 并将二进制库包含在我的 iPhone 项目中。当然,我仍然会保留 libssh2 源代码,以防将来确实需要重新构建它。