objective-c - Iphone - 设备 - 链接器错误

标签 objective-c linker-errors libpng

我已将 libpng 添加到我的应用程序中。如果我为模拟器构建,一切都很好。当我为设备构建应用程序时,出现链接器错误:

    Undefined symbols for architecture armv7: "_png_init_filter_functions_neon", referenced from: _png_read_filter_row in libpng-arm7-release.a(pngrutil.o)

我已经从源代码手动构建 libpng,模拟器和设备的方式相同(仅更改了编译目标)。我试图找到这个问题,但似乎没有人发布有关此问题的任何信息。

最佳答案

我通过替换 libpngpngpriv.h 中的第 117-121 行“解决”了这个问题:

#  ifdef __ARM_NEON__
#     define PNG_ARM_NEON_OPT 2
#  else
#     define PNG_ARM_NEON_OPT 0
#  endif

通过

#define PNG_ARM_NEON_OPT 0

这会禁用 ARM 的 NEON 优化,这似乎是问题的原因。

虽然这只是一种解决方法,但我没有时间进一步调查问题的真正原因。

关于objective-c - Iphone - 设备 - 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19089014/

相关文章:

iphone - 应用播放背景音频不起作用

ios - 减少多行 UILabel 中最后一行的宽度

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - 与静态库链接时 undefined reference ,但与 src 编译时链接成功

c - 未定义的函数引用

c++ - 如何让png具有透明属性

objective-c - UIWebView 未在 UITableViewCell 中定位

ios - 尝试在手机上启动 iCloud 应用程序时出现黑屏

c++ - 使用 png++ 找出 png 颜色类型

gradle - 在Gradle构建过程中跳过处理文件