我已将 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,模拟器和设备的方式相同(仅更改了编译目标)。我试图找到这个问题,但似乎没有人发布有关此问题的任何信息。
最佳答案
我通过替换 libpng
的 pngpriv.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/