ammcom ammcom - 1 year ago 136
C Question

Android ndk cannot find symbol "sigemptyset"

I am building a C app for android, I use 'sigemptyset' in my app, when I compile the code using NDK it is compiled successfully, but when running the app I get

cannot locate symbol 'sigemptyset'

After searching I found that the problem is that I build the app using ndk-r11 which build for android-5 but I am running the app on android 4.4 where
definition has changed. so I added the following to

TARGET_PLATFORM := android-19

but I still get the same error

Does anyone know how to fix this?


This question is not a duplicate of another question nor the answer there suggests changing the
parameter in

Answer Source

The cause of problem is not the version of NDK that was used but version of target platform. android-19 is the last platform version where sigemptyset() (and many other functions) was declared as inline just at platform headers. As result - system libc on that devices doesn't contain such functions. So you are right - you should use proper target platform to allow your code to run on older devices. But you are doing it incorrectly. All that you need is add

APP_PLATFORM := android-19

to your