产品中有一部分 iPhone 和 Android 共享代码是C++的,对iphone 主项目来说就是生成成.a文件后加到Frameworks中。编译、链接通过,在手机上调试一切正常,在模拟器上调试 crash, 错误是Detected an attempt to call a symbol in system libraries that is not present on the iPhone: sleep$UNIX2003 called from function _ZN17LiteSemaphoreImpl8sem_waitEPS_ in image TouchPalDialer. 这是共享代码中的一行,用到了 sleep 函数。
搜到这个
http://stackoverflow.com/questions/8732393/code-coverage-with-xcode-4-2-missing-files/8733416#8733416 照着在共享代码中加入 sleep$UNIX2003 的定义,无效。
另外搜到很多都说是模拟器版本的问题。
我尝试着把Build SDK 和 Deployment Target 都设为 5.1,可是还没有用
网上有说这是4.1之后的问题,换了老版本模拟器就好了。可我的 XCode 是 4.3.2 版本的,在 Preferences -》downloads 中根本找不到4.3 以前的模拟器,
有谁知道如何解决这个问题么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://study.congcong.us/t/37804
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.