ios交叉编译dylib
ios交叉编译dylib
因多个静态库,libes,libffmpeg,libmt. libpcap 使用不方便
在封装一层接口,生成动态库(c代码),由IOS app上层调用。
注意:
ARCH 指定,可以指定多个,向下兼容!
目前为止Apple移动设备默认指令集-------------------------------------------------------------------------------------
armv6 设备: iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch
armv7 设备: iPhone3GS, iPhone4, iPhone4S
iPad, iPad2, iPad3(The New iPad), iPad mini
iPod Touch 3G, iPod Touch4
armv7s设备: iPhone5, iPhone5C, iPad4(iPad with Retina Display)
arm64 设备: iPhone5S, iPad Air, iPad mini2(iPad mini with Retina Display)
使用lipo -info命令 查看动态库信息
input file libmtsql.a is not a fat file
Non-fat file: libmtsql.a is architecture: armv7
也可以用readelf读取头信息。
nm输出字符 | 含义 |
R | Read only symbol. 比如在代码中有一个const MAXDATA = 3095; 则MAXDATA就是一个Read only symbol |
N | 这是一个调试符号 |
D | 这是一个已经初始化的变量的符号。比如代码中int i = 1和char *str = "Hello"则i和str都是这种类型的符号 |
T | Text段的符号。子程序都是这种符号,比如文件中实现了一个函数function,则function就是这种符号 |
U | 未定义的符号。如果文件中引用了不存在的函数,则这些未定义的函数符号就是这种类型 |
S | 未初始化的符号,比如全局变量int s;则s的符号就是此类型 |
8.1的iphoneOS编译的动态库, APP 前台调用找不到符号 提示Undefined symbols for architecture armv7s reference from。 前台是在越狱开发环境theos 编译的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。