我正在尝试构建链接到第 3 方 SDK(用 C++ 编写)的框架。
为 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)
但是,当我将这些相同的 SDK 文件复制到另一个应用项目并构建时,它工作正常。
我已经仔细检查了所有build设置,两个项目中的一切都是一样的。
该框架的代码是here .
- 有没有办法解决这个问题(除了从有效架构中删除 arm64)?
- 我可以告诉链接器不要使用这个特定的符号吗?
编辑 1
我不确定这是否相关,但我也看到一条警告:
ld:警告:忽略文件/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/lib/libgcc_s.1.tbd,丢失文件/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/lib/libgcc_s.1.tbd(2片)中所需的架构arm64
Best Answer-推荐答案 strong>
问题在于 SDK 提供的 libpostprocess.a 已过时。
我在网上找到了一个更新版本,它刚刚工作。
关于c++ - 仅在构建框架时架构 arm64 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41953590/
|