如何在 iOS 中 link protobufs
How to link protobufs in iOS
我一直在努力让 compile/run 的 protobufs 3 达到 iOS。一切都编译,但在运行时我得到:
dyld: Library not loaded: /usr/local/lib/libprotobuf.15.dylib
Referenced from: /path/to/TheApp.app/TheApp
Reason: no suitable image found. Did find:
/usr/local/lib/libprotobuf.15.dylib: mach-o, but not built for iOS simulator
这是我的步骤:
- 使用this excellent script.
为所有架构编译静态库
- 将静态库添加到编译目标的
General
选项卡下的 Linked Frameworks and Libraries
部分。
- 构建 => 成功
首先我认为构建脚本实际上并不是在构建静态库。我浏览了脚本并使用 lipo
和 otool
等工具检查了构建输出。看起来正确。
然后我 运行 在构建输出中加入这个警告:
URGENT: building for iOS simulator, but linking against dylib (/usr/local/lib/libprotobuf.dylib) built for OSX
我仔细检查了构建目标以确保我的目标是 iOS。好的
然后我开始搜索为什么它会 link 反对动态库,即使一切都是静态的并且 运行 进入互联网上的 post 说 OSX支持 linking 反对 DLL 而不是静态库。如果你想解决这个问题,你必须设置你的构建命令 some kind of style。我在 Xcode 编辑器中,所以我没有做 t运行 的练习。
然而,鉴于此,我删除了对动态库的引用以观看回退到静态:
rm /usr/local/lib/libprotobuf.dylib
建立。 运行。成功。
所以原因是已知的,但是这个答案是不完整的。请编辑此答案并提供有关如何使 Xcode 强制静态 link 与获取 dylib 以及仅删除 dylib 引用
的详细信息
我一直在努力让 compile/run 的 protobufs 3 达到 iOS。一切都编译,但在运行时我得到:
dyld: Library not loaded: /usr/local/lib/libprotobuf.15.dylib
Referenced from: /path/to/TheApp.app/TheApp
Reason: no suitable image found. Did find:
/usr/local/lib/libprotobuf.15.dylib: mach-o, but not built for iOS simulator
这是我的步骤:
- 使用this excellent script. 为所有架构编译静态库
- 将静态库添加到编译目标的
General
选项卡下的Linked Frameworks and Libraries
部分。 - 构建 => 成功
首先我认为构建脚本实际上并不是在构建静态库。我浏览了脚本并使用 lipo
和 otool
等工具检查了构建输出。看起来正确。
然后我 运行 在构建输出中加入这个警告:
URGENT: building for iOS simulator, but linking against dylib (/usr/local/lib/libprotobuf.dylib) built for OSX
我仔细检查了构建目标以确保我的目标是 iOS。好的
然后我开始搜索为什么它会 link 反对动态库,即使一切都是静态的并且 运行 进入互联网上的 post 说 OSX支持 linking 反对 DLL 而不是静态库。如果你想解决这个问题,你必须设置你的构建命令 some kind of style。我在 Xcode 编辑器中,所以我没有做 t运行 的练习。
然而,鉴于此,我删除了对动态库的引用以观看回退到静态:
rm /usr/local/lib/libprotobuf.dylib
建立。 运行。成功。
所以原因是已知的,但是这个答案是不完整的。请编辑此答案并提供有关如何使 Xcode 强制静态 link 与获取 dylib 以及仅删除 dylib 引用
的详细信息