- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在项目中编译了自己的 protobuf(在主要目标中,而不是 lib),但我发现了一个崩溃,这是由 libprotobuf.dylib 中的 protobuf 代码引起的(我猜这是新包含的 lib设备版本 -- 我的是 ipad air)。
* thread #1: tid = 0x6598, 0x0027e96e TutorChat`void google::protobuf::internal::RepeatedPtrFieldBase::Destroy<google::protobuf::RepeatedPtrField<google::protobuf::UninterpretedOption>::TypeHandler>(this=0x1567158c) + 66 at repeated_field.h:814, queue = 'com.apple.main-thread, stop reason = breakpoint 2.41
frame #0: 0x0027e96e TutorChat`void google::protobuf::internal::RepeatedPtrFieldBase::Destroy<google::protobuf::RepeatedPtrField<google::protobuf::UninterpretedOption>::TypeHandler>(this=0x1567158c) + 66 at repeated_field.h:814
frame #1: 0x37f231f2 libprotobuf.dylib`google::protobuf::FileOptions::~FileOptions() + 38
frame #2: 0x37f231be libprotobuf.dylib`google::protobuf::FileOptions::~FileOptions() + 10
frame #3: 0x37f18764 libprotobuf.dylib`google::protobuf::FileDescriptorProto::~FileDescriptorProto() + 56
frame #4: 0x37f11296 libprotobuf.dylib`google::protobuf::EncodedDescriptorDatabase::Add(void const*, int) + 206
frame #5: 0x37ef13d0 libprotobuf.dylib`google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int) + 76
frame #6: 0x37f1696a libprotobuf.dylib`google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto() + 146
frame #7: 0x37f2a580 libprotobuf.dylib`_GLOBAL__I_a + 8
frame #8: 0x2be0e5a0 dyld`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 176
frame #9: 0x2be0e6b0 dyld`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 20
frame #10: 0x2be0bd36 dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 358
frame #11: 0x2be0bcb8 dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) + 232
frame #12: 0x2be0bb8c dyld`ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 40
frame #13: 0x2be05276 dyld`dyld::runInitializers(ImageLoader*) + 78
frame #14: 0x2be092c2 dyld`dlopen + 1030
frame #15: 0x381d978c libdyld.dylib`dlopen + 48
frame #16: 0x2f863794 libGFXShared.dylib`gfxInitializeLibrary + 1056
frame #17: 0x2f7940fc GLEngine`gliInitializeLibrary + 44
frame #18: 0x2f856b60 OpenGLES`eagl_init + 436
frame #19: 0x2f856792 OpenGLES`-[EAGLSharegroup initWithAPI:sharedWithCompute:] + 114
frame #20: 0x2f855b7e OpenGLES`-[EAGLContext initWithAPI:properties:] + 242
frame #21: 0x0179870e libglInterpose.dylib`EAGLContext_initWithAPIProperties(EAGLContext*, objc_selector*, unsigned int, NSDictionary*) + 74
frame #22: 0x2f8559de OpenGLES`-[EAGLContext initWithAPI:sharedWithCompute:] + 142
我猜内部库 ImageLoader 根据需要加载 protobuf,这会覆盖我自己的符号。所以我想知道有什么方法可以让事情变得正确吗?
最佳答案
是的,较新设备(iPhone 5S 和显然是 iPad air)上的 ImageLoader 有自己的 Protocol Buffers 副本,这会导致符号冲突。
我通过编辑 google/protobuf/stubs/common.h 并在文件顶部附近插入以下行来解决这个问题:
#define google myapp
现在,我的 Google protobuf 实现副本使用命名空间“myapp”而不是“google”,因此符号不会与系统符号冲突。
关于ios - 奇怪的 ios libprotobuf.dylib 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848118/
我认为我弄乱了 libxml2.dylib、libz.dylib、libicucore.dylib 和 libc++.dylib 文件,然后 1. 在项目中显示为红色,2. 导致链接器错误。 并在与库
我正在研究 SDK,试图了解实际包含的内容。 我注意到 dylibs 有时会以多个版本发布,例如 ls /Applications/Xcode.app/Contents/Developer/Platf
我在评论中提出了这个问题,但这似乎是一个值得单独提问的问题。 我有一个项目在三个不同的 XCode 安装和两个不同的 iOS SDK 安装之间共享。目前,统一所涉及的开发人员不是一种选择。 当我安装
我正在多次加载 dylib 并尝试理解是什么让这些符号不同。 这是我的步骤: 使用以下入口点构建 lib_a.dylib: FactoryA : IFActory () {} extern "C" I
我正在关注 this tutorial 教程说明要添加 libz.1.2.3.dylib. 库,但是因为我下载了新的或旧的库(我不知道我的库是新的还是旧的教程中的库,但 99% 是较新的)。所以,当我
有没有办法使用 dylib 的路径查找其版本?我正在寻找接受与 dlopen 相同参数的东西。我查看了 NSVersionOfRunTimeLibrary,但从我阅读的文档来看,它似乎获取了当前 dy
我正在从源代码构建 cyrus sasl2 库。库安装在/usr/local/lib 中, header 安装在/usr/local/include/sasl 中,这是正确的。 但是,当我运行尝试使用
我确定 .A 意味着什么,但搜索它只会产生噪音。请赐教。 最佳答案 哦,它们是一样的。 -rwxr-xr-x 1 root wheel 4969408 Sep 25 16:06 libicuco
我已经从我的 iOS 应用项目构建了一个 ipa 包。使用 zip 打开 .ipa 文件后。我发现这里有很多 swift 支持的动态库。 我想知道 libswiftFoundation.dylib 和
在带有 gcc-5.2 的 g++ 的 mac os x 下,我正在尝试执行以下操作:创建一个 dylib,导出由 header tmp8bis_dylib.h 定义的类和来源 tmp8bis_dyl
我正在使用 py2app 从 Python 代码创建一个应用程序。 一切顺利,直到我运行 setup.py,然后在它运行的最后我收到这条消息:“ValueError: '/Users/(my_comp
我有一个旧的 iOS Xcode 项目,我在其中使用了 libxml2.dylib 和 libresolv.9.dylib。安装 XCode7 后。 我找不到文件,也不知道去哪里搜索。有人可以帮助我吗
我开始在我正在开发的应用程序中使用 SQLite 数据库。我还没有遇到问题,但是来自 this tutorial 的早期步骤之一正在链接 SQLite3 框架。本教程需要 libsqlite3.0.d
我正在为 Xamarin.Mac 创建绑定(bind)/MonoMac 。我想嵌入 dylib在生成的dll中就像 Xamarin.iOS 上所做的那样与 [LinkWith]属性。 可以这样做吗?如
C++ dylib 暴露如下 __attribute__((visibility("default"))) int addNumber(int number) { return 0; } 在我
目前我正在使用 libxml2.dylib 来解析 XML 现在我想转移到 libxml2.2.dylib。那么,我会在配置和编码方面做什么样的改变? 最佳答案 Xcode 4.5(和重要的 iOS6
在使用 matplotlib 时获取错误信息: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already ini
我已经创建了一个Python应用程序,并使用Pyinstaller将其构建到Unix可执行文件中。在我尝试对应用程序进行代码签名之前,应用程序运行得很好。在代码签名之后,我在尝试运行可执行文件时收到以
我正在尝试在应用程序上使用 Parse,我是 swift 的新手。但是我下载了 Xcode 7,似乎 libz.dylib libsqlite3.dylib 丢失了,当我编译和构建它时,它已成功完成,
我在尝试在任何脚本上使用 Pilow 时遇到此错误: File "/Users/antonio/WWW/myproj/myproj/functions.py", line 12, in
我是一名优秀的程序员,十分优秀!