添加了.a文件后,出现了针对armv7架构的未定义符号

3
我正在尝试使用一个我从某个供应商那里接收到的*.a和*.h文件构建一个小应用程序。这是我第一次向项目添加外部文件。
我已经将文件添加进去,但是我遇到了以下错误:
未定义的符号架构armv7: "_vDSP_fft_zropD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_vclrD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_vdbconD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_vmulD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_hamm_windowD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_init "_vDSP_zaspecD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_OBJC_CLASS_$_EAAccessoryManager",引用自: libmyTrekSDK_armv7.a(hrMonitor.o)中的objc-class-ref "_EAAccessoryDidDisconnectNotification",引用自: libmyTrekSDK_armv7.a(hrMonitor.o)中的-[HRMonitor startup] "_vDSP_create_fftsetupD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_init "_EAAccessoryDidConnectNotification",引用自: libmyTrekSDK_armv7.a(hrMonitor.o)中的-[HRMonitor startup] "_OBJC_CLASS_$_EASession",引用自: libmyTrekSDK_armv7.a(hrMonitor.o)中的objc-class-ref "_vDSP_ctozD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_maxmgvD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_estimation "_vDSP_destroy_fftsetupD",引用自: libmyTrekSDK_armv7.a(hr_calc.o)中的_fft_hr_free ld:符号(们)未找到架构armv7 clang:链接器命令失败,退出代码为1(使用-v查看调用)
到目前为止,我尝试过以下方法(在其他帖子中提到):
1.确保*.a文件包含在“Link Binary With Library”中。
2.尝试将C++语言方言和C++标准库更改为编译器默认值。
更多信息:
1.这些文件位于项目文件夹中。
2.我正在使用iPhone 4S v.6.1.3,项目的部署目标是iOS 6.1。

1
你正在链接的 .a 文件是 libmyTrekSDK_armv7.a 吗?如果是,看起来它需要另一个库(也许是 Accelerate.framework)在它之前被链接...同时尝试链接 ExternalAccessory.framework。 - jjv360
@jjv360 你刚刚救了我的一天! - Brian
2个回答

3

未来参考,我遇到了 "_OBJC_CLASS_$_EASession", referenced from: 错误。通过将 ExternalAccessory.framework 添加到 Targets > myApp > Build Phases > Link Binary with Libraries 中解决了此问题。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接