我通过cocoapods和libharu使用OpenCV,两者都使用libpng,我无法在libharu静态库中包含opencv.framework以使用libpng。
我是否需要重命名每个符号,或者有办法使用相同的libpng?
答案 0 :(得分:0)
第三方静态库永远不应链接其他第三方静态库本身。最终的应用程序链接步骤应最终将所有库链接在一起。如果cocoapod规范要求一个静态库包含另一个,那么它是不正确的,需要修复。
有关此问题的更多信息,请参阅此问题及其链接的问题:
答案 1 :(得分:0)
从libpng-1.6.0开始,您可以配置libpng(使用时使用 “configure”脚本)通过以下方式为所有导出的符号添加前缀 配置选项“--with-libpng-prefix = FOO_”,其中FOO_可以是任意一个 以字母开头且仅包含大写的字符串 小写字母,数字和下划线(即C语言) 标识符)。这在pnglibconf.h中创建了一组宏,所以这是 对应用程序透明;他们的函数调用被转换 宏使用修改后的名称。
基本上,它会在构建时为您重命名每个导出的符号 你自己的libpng。
我没有亲自测试过此功能。