簡體   English   中英

Iphone - 設備 - 鏈接器錯誤

[英]Iphone - device - linker error

我已將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優化,這似乎是導致問題的原因。

這僅僅是一種解決方法,我沒有時間進一步研究問題的真正原因。

添加到PSyton的評論,這是我們解決它的方式。 編譯arm/*.c文件。 但這只適用於Android。 對於iOS,我們還必須使用以下條目創建一個新的pnglibconf.h

#undef PNG_ARM_NEON_API_SUPPORTED
#undef PNG_ARM_NEON_CHECK_SUPPORTED
#define PNG_ARM_NEON_OPT 0

看看在libpng中定義的ARM,看起來它們當前有點錯誤,因為PNG_ARM_NEON_API_SUPPORTED應該足以關閉NEON編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM