首页 > 代码库 > iOS指令集查询技巧

iOS指令集查询技巧

1、在shell终端中编写.c或.m文件,需要编译成.o文件(即gcc -c ***.c/***.m),即可生成***.o文件2、在shell中输入 ar crs lib***.a ***.o ,即可生成lib***.a库文件 3、在shell中输入nm ./***.out,即可查看二进制文件4、在shell终端中输入lipo -info lib***.a文件或者 file lib***.a文件,如果输出是X86,说明是MAC的指令集,如果输出是ARM7、ARM64就是真机设备(ios设备)的指令集5、模拟器上运行的程序不能在iOS设备上运行,反之iOS设备上运行的程序也不能在模拟器上运行,因为模拟器使用X86指令集,真机设备使用的是ARM7指令集6、在Xcode 6.1中,有3中方法包含第3方开源代码引入工程: 第1中方式创建Cocoa Touch Static Library静态库类,生成 ***.a 库文件,在Xcode6.1的Preferences中Loccation位置,默认在/Users/apple/Library/Developer/Xcode/DerivedData路径中,然后找到自己的工程名字,找到 ***.a 库文件即可,如果编译是选择的是模拟器,则生成的 ***.a 文件默认是X86(Mac OS电脑)指令集,如果编译时选择iOS设备编译,即生成的***.a就是ARM7或者ARM64指令集,也可以通过shell终端命令查看属于何种指令集 第2种方方式是在有现成的开源代码时,可把整个Xcode整个工程添加到当前项目工程中,可以修改开:源代码,编译时自动更新 ***.a 文件。注意上述方法:都需要在工程编译设置(Building Setting)中指定***.h文件路径,在Build Phases中Link中添加 ***.a 文件 第3中方式先创建Cocoa Touch FrameWork工程,即创建一个FrameWork框架,生成.framework文件,然后在Build Phases中Link中添加 ***.framework 文件7、在shell中可通过lipo -create lib***1.a lib***2.a -output lib***12.a ,其中 lib***1.a 代表选择iOS真机设备编译的指令集, lib***2.a 代表选择模拟器编译的指令集,lib***12.a是把lib***1.a 和lib***2.a 封装的结果,以后不管是模拟器还是真机都可以使用该库文件。

iOS指令集查询技巧