我正在为安卓构建一个C应用程序,我在我的应用程序中使用了'sigemptyset‘,当我使用NDK编译代码时,它被成功编译了,但当我运行应用程序时,我得到了cannot locate symbol 'sigemptyset'。
搜索后,我发现问题是我使用ndk-r11构建应用程序,它是为android-5构建的,但我在android4.4上运行该应用程序,其中sigemptyset定义发生了变化。因此,我在Android.mk中添加了以下内容:
TARGET_PLATFORM := android-19但是我还是得到了同样的错误
有人知道怎么解决这个问题吗?
编辑:
此问题不是另一个问题的重复,其中的答案也不建议更改Application.mk中的APP_PLATFORM参数
发布于 2016-07-25 15:07:29
问题的原因不是所使用的NDK版本,而是目标平台的版本。android-19是最后一个平台版本,其中sigemptyset() (和许多其他函数)仅在平台标头处声明为内联。因此,该设备上的系统libc不包含这样的功能。所以你是对的-你应该使用合适的目标平台来允许你的代码在旧设备上运行。但是你做得不对。你需要做的就是添加
APP_PLATFORM := android-19发送到您的Application.mk。
https://stackoverflow.com/questions/38553152
复制相似问题