1

最近我更新到 Xcode 5,现在我的 iOS 应用程序在以下代码上崩溃:

float some_var_a = sinf(...);
float some_var_b = cosf(...);

崩溃日志显示以下内容:

Dyld Error Message:
Symbol not found: ___sincosf_stret
Referenced from: /var/mobile/Applications/702C8CF3-BB96-41F0-9525-5D65B7A581F3/Magic        Encyclopedia: Illusions HD.app/Magic Encyclopedia: Illusions HD
Expected in: /usr/lib/libSystem.B.dylib
Dyld Version: 199.6

据我了解,问题出在编译器进行的 sin/cos 优化中。它尝试在一次调用 ___sincosf_stret 函数中计算 sin 和 cos 值,但由于某种原因,libSystem.B.dylib 中没有这样的函数。

谁能帮忙:

1)为什么会发生?

2)如何解决?目前我只是避免在一个地方同时调用 sin 和 cos ,并且它有效。但这是一个糟糕的解决方案。

4

1 回答 1

7

当使用 iOS 7 的部署目标编译代码然后在 < iOS 7 的设备上运行时,会导致此错误。

您需要重新检查您的项目和所有依赖库项目设置,以确保正确设置部署目标(在您的情况下为 iOS 5.1)。

库项目设置可能是罪魁祸首,因为项目部署目标在应用程序包中强制执行,并且无法在不兼容的设备上运行。

于 2013-10-02T10:04:21.873 回答