Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将静态库附加到iphone/ipad应用程序_Iphone_Ipad_Static Libraries_Static Linking_Libssh - Fatal编程技术网

将静态库附加到iphone/ipad应用程序

将静态库附加到iphone/ipad应用程序,iphone,ipad,static-libraries,static-linking,libssh,Iphone,Ipad,Static Libraries,Static Linking,Libssh,在iPhone或iPad应用程序中包含静态库的最佳方法是什么 我可以选择 编译提供正确平台的库,并使用ar实用程序构建库文件,然后将其作为框架添加到项目中 包括library.c/.h的源代码,并将它们与应用程序一起编译 第一种方法似乎更简单,因为我不关心管理我想要包含的库的所有特定设置,但如何为iPhone和iPad创建库,并允许xcode在链接时使用正确的库 第二种方法似乎更复杂,因为xcode将负责编译我的应用程序和库(我想使用不同的设置),那么我应该怎么做呢?我可以很容易地添加lib

在iPhone或iPad应用程序中包含静态库的最佳方法是什么

我可以选择

  • 编译提供正确平台的库,并使用
    ar
    实用程序构建库文件,然后将其作为框架添加到项目中
  • 包括library.c/.h的源代码,并将它们与应用程序一起编译
第一种方法似乎更简单,因为我不关心管理我想要包含的库的所有特定设置,但如何为iPhone和iPad创建库,并允许xcode在链接时使用正确的库

第二种方法似乎更复杂,因为xcode将负责编译我的应用程序和库(我想使用不同的设置),那么我应该怎么做呢?我可以很容易地添加lib的源代码,但我必须包含make脚本,以允许xcode以正确的方式使用它们进行构建

有关于如何进行的建议吗?我试图包含的库是libssh。(当然,我知道这个库已经在iPhone上编译并试用成功)


提前谢谢。

我会选择第一种方法

您可能应该构建两个不同版本的库,一个用于iPhone,另一个用于iPad。这些必须是包含不同架构的胖库(armv6用于iPhone 3G,armv7用于iPhone 3GS,i386用于iPhone模拟器第一个,armv7和i386用于iPad)

基本上,您为iPhone构建了三个不同的版本,然后使用lipo工具将它们合并到一个fat文件中

然后,再为iPad构建两个不同的版本,并使用lipo将它们合并在一起。请注意,您不能将最初为iPhone编译的armv7和i386版本重新用于iPad,因为您需要使用属于两个不同SDK的编译器(iPhone为3.1,iPad为3.2)来构建它们

我不确定lipo是否允许您毫无怨言地将两个armv7或两个i386版本的库合并到一个文件中。您可能想试试这个,因为在这种情况下,您可以在整个过程结束时只找到一个fat库