我正在为 iPhone 编写一个静态库,我想知道我正在做的事情是否值得推荐,或者我是否应该采取不同的方法。
我正在编写的静态库依赖于 libxml2。libxml2 有一个动态库(dylib)和一个静态库(a)。我尝试了两种方法。
方法一 - 当我尝试通过将“-lxml2”添加到“其他链接器标志”来链接静态库时,构建失败并显示以下消息:
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)
方法二 - 我可以从我的静态库中成功链接到动态库,但我不确定这在 iPhone 上是否允许(或正确的方法)。即使我正在构建一个静态库,Apple 是否允许链接到动态库的静态库?我仍在学习静态库,但据我了解,dylib 中的代码将与我的代码组合成一个库,因此链接到 dylib 应该不是问题。
总结一下:
- mylibrary.a -> libxml2.a [不起作用]
- mylibrary.a -> libxml2.dylib [构建,但这是正确且可接受的吗?]