简体   繁体   中英

Undefined symbols for architecture arm64 only when building framework

I'm trying to build my framework which links to a 3rd party SDK (written in C++). I get this error when I build it for my iPhone 6s:

Undefined symbols for architecture arm64:
  "_deblock_vert_lpf9", referenced from:
      _deblock_vert in libpostprocess.a(postprocess.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

However, when I copy these same SDK files to another app project and build, it works fine. I have double checked all build settings and everything is the same in both projects. The code for the framework is here .

  1. Is there a way I can workaround this (apart from removing arm64 from valid architectures)?
  2. Can I tell the linker somehow that this particular symbol won't be used?

EDIT 1

I'm not sure if this is relevant but I also see a warning that says:

ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/lib/libgcc_s.1.tbd, missing required architecture arm64 in file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/lib/libgcc_s.1.tbd (2 slices)

The problem was that libpostprocess.a supplied with the SDK was outdated. I found an updated version online, and it just worked. :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM