以下代码在 Xcode 创建的模板项目中崩溃。
int main(int argc, char *argv[])
{
uint64_t t64 = 100000;
double s = (double)t64; // Crash!
...
崩溃伴随着以下控制台输出,发生在 2.2.1 设备上,但不在 3.0.1 设备上。它在为 Thumb 或 ARM 编译时都会发生。
dyld: lazy symbol binding failed: Symbol not found: ___floatundidf
Referenced from: /var/mobile/Applications/15E9DC65-324D-4C3A-8477-DC8CFFA67DC1/MyApp.app/MyApp
Expected in: /usr/lib/libgcc_s.1.dylib
dyld: Symbol not found: ___floatundidf
Referenced from: /var/mobile/Applications/15E9DC65-324D-4C3A-8477-DC8CFFA67DC1/MyApp.app/MyApp
Expected in: /usr/lib/libgcc_s.1.dylib
该问题仅发生在 3.0 的 Base SDK 中,为 2.2.1 编译就可以了。不幸的是,我有 3.0 的增强功能。