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命令查看符号信息,以下是一些常见的符号类型

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的符号就是此类型

当指定多个ARCH结构时, 同一个符号出现多个地址!

今日遇见问题:

IOS_BASE_SDK="8.1"

IOS_DEPLOY_TGT="7.1"

DEVROOT = "$(shell xcode-select -p)/Platforms/iPhoneOS.platform/Developer"

SDKROOT ="$(DEVROOT)/SDKs/iPhoneOS$(IOS_BASE_SDK).sdk"

8.1的iphoneOS编译的动态库, APP 前台调用找不到符号 提示Undefined symbols for architecture armv7s reference from。 前台是在越狱开发环境theos 编译的。

怀疑:两种连接符号地址不同

时间: 2024-08-10 00:06:18

ios交叉编译dylib的相关文章

Xcode4.6创建和使用iOS的dylib动态库(转载)

此为xcode4的方法,xcode3的方法请查看 Xcode3创建和使用iOS的dylib动态库 找到两个目录,最好用两个finder窗口分别打开: 目录一: [plain] view plaincopy /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/ 目录二: [plain] view plaincopy /Applica

构建iOS交叉编译环境

要进行高级的iOS编程,我们需要很多工具链来帮我们完成这一目的 构建iOS交叉编译环境: 1.新建一个iphone交叉编译虚拟机 ? 2. 为我们的虚拟机添加第二个网卡,设为host-only来达到能与宿主机互通的目的 ? 启动我们的虚拟机 ? 我这边设置虚拟机的密码为123 ? 为方便操作,我们需要在我们的windows主机上能对虚拟机进行操作 要达到这个目的,我们应该先设置我们的虚拟机ip ? auto eth0 iface eth0 inet static address 192.168.

人工智能实战——人工神经网络(C库iOS交叉编译)

人工智能实战--人工神经网络 给最近人工智能辣摸火,让我忍不住也想一探究竟,首先从目前来讲我是一个人工智能领域的门外汉,尽管恶补了几天基本知识,机器学习算法看得差不多,神马线性回归啊,逻辑回归啊,SVM啊,k临近算法啊,决策树啊,随机森林啊,看的我吐血了,不过也不难理解,然后尝试着用一套开源代码FANN(c语言跨平台库)编译到ios中写一个简单的小机器人 首先是准备工作,把FANN2.2.0的源代码编译成ios 64bit 模拟器的dylib库,其过程不聊了,用到了cmake...等等... 拿

iOS交叉编译

编译objc程序 ~/toolchain4/pre/bin/arm-apple-darwin9-gcc -arch arm -lobjc -framework CoreFoundation -framework Foundation -framework UIKit -framework CoreGraphics -isysroot ~/toolchain4/sys -F"~/toolchain4/sys/System/Library/PrivateFrameworks" -bind_

在MAC上为ios交叉编译mono的AOT工具

新的编译命令: #!/bin/bash BUILD_MAC_X64=1 BUILD_MAC_i386=1 BUILD_ARMv7_ANDROID=0 BUILD_I386_IOS_SIM=0 BUILD_ARMV7_IPHONE=0 BUILD_ARMV7S_IPHONE=0 BUILD_AOT_HOST_MAC_TARGET_ARMv7=0 BUILD_TARGET=mono_target IOS_MIN_SDK=6.1 ( PWD=`pwd` PREFIX=${PWD}/${BUILD_TA

android版本vqmon移植IOS版

IOS交叉编译 1.android版本 vqmon已经正常运行,现需要开放IOS版本,作移植工作. 2. 注意事项: 1)ROOT权限,IOS必须越狱.  2)依赖库:pcap, ffmpeg,libes,  libxml2, libz,  3) iphone手机越狱,远程ssh登录 3.开放环境: xcode:6.1.1  mac-mini: 10.1.9   clang:  Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3s

IOS Exception 1(libc++abi.dylib: terminating with uncaught exception of type NSException)

2014-08-05 22:18:46.455 SwiftUI[1329:40871] -[_TtC7SwiftUI14MViewControler clickMe]: unrecognized selector sent to instance 0x10ea15dc0 2014-08-05 22:18:46.458 SwiftUI[1329:40871] *** Terminating app due to uncaught exception 'NSInvalidArgumentExcept

Delphi XE Seattle update1 在iOS 9.3模拟器调试程序时出现dlopen(libmidas.dylib,1):image not found错误的解决

发布时发布libmidas.dylib,但要注意真机和模拟器对应的libmidas.dylib不一样,发布错了会出现libmidas.dylib: mach-o, but not built for iOS simulator错误,模拟器要选E:\Program Files (x86)\Embarcadero\Studio\17.0\Redist\iossimulator\libmidas.dylib,真机要选E:\Program Files (x86)\Embarcadero\Studio\1

解决iOS的libc++abi.dylib: handler threw exception问题

今天遇到了libc++abi.dylib: handler threw exception的问题,不过在真机上运行一切正常!一开始没有想到是由于模拟器对xib文件的编译缓存,需要把模拟器中的App删除,同时把代码clean一次,再编译运行,终于一切正常了. 问题的根本原因是由于之前xib中有个控件的连接对象有问题,后来修改了,但编译器没有识别出来,总是不对新xib进行处理,导致模拟器总是报错! 以后遇到奇怪的问题,可以使用此法先确定不是环境的问题,再着手在代码中查找吧! 解决iOS的libc++