我最终确定了一个开源C编码的CometD库,我认为将它打开给像我这样的OSX/iOS用户是一个好主意.
为了简化OSX/iOS开发人员的工作,我想从静态C库切换到Xcode iOS Static Libary.所以我按照网上的建议,生成了一个静态的iOS兼容库.
问题是,每当我尝试使用它时,我都会收到类型错误:
架构x86_64:******的未定义符号,引用自: - **********in*******.a(*******.o)
我的库中几乎每个C函数都会重复此错误.
首先我想也许库不是x86_64 compatible,空的,或者真的没有任何x86_64符号.
所以我在图书馆检查了"lipo -info",这是答案:
确实我还在库上使用了"nm -arch x86_64",并将Xcode报告的几个未定义函数作为错误.我以为我会错,除了猜猜什么都找不到?
所以我的问题是:
如果符号存在于x86_64兼容库中,为什么Xcode会提示此错误?即使我为所有arm*/s类型编译库,我仍然会收到此x86_64错误.
我没有意识到某事或我只是做错了吗?
您的答案总是受到赞赏.
更新(这是Xcode项目的链接):https://github.com/GhostGumm/CometD-x86_64-issue
更新2:Trojanfoe先生引起了我对编译时的链接警告的注意.实际上,链接器似乎错过了加载库以寻找不存在的目录.将库移动到右侧目录,手动链接后,x86_64错误消失.
可悲的是,问题仍然存在.在成功编译之后,我尝试使用lib,但是,当我"分配"和"初始化"我的主类时,如下所示:
ZetaFactory *Client = [[ZetaFactory alloc] init];
Run Code Online (Sandbox Code Playgroud)
x86_64错误随着十亿个太阳的真正激烈而咆哮.我发布了Xcode项目的链接,请随意测试它,因为我没有更多关于如何解决它的想法,但更重要的是为什么以及在哪里有这个错误.
尽管如此,我还是会继续调查.
有没有办法连接两个字符串并注入一个字符.我有 :
NSString *firstString = @"http://www.stackoverflow.com";
NSString *secondString = @"supercooloptions";
NSString *result = [firstString stringByAppendingString: secondString];
NSLog(@"the final string with "/" injection = %@", result);
Run Code Online (Sandbox Code Playgroud)
我希望注入"/"的最终字符串= www.stackoverflow.com/supercooloptions
我过去在 WebRTC 上使用我非常熟悉的 C 服务器(Janus)工作,现在我想将 WebRtc 容量添加到 Live555,以便能够通过它流式传输一些视频。问题是我对 live555 缺乏文档感到不知所措(比 Janus 更糟糕)如果我可以恢复 live555 缺乏:
1- SDP 解析器/构建器
2- HTTP 信号解析器/生成器
我的问题是我是否看到所有缺失的或需要完成的?
如果有任何机会,有人可以给我一些提示。