Android ndk 如何在android ndk中包含使用posix头的本机库

Android ndk 如何在android ndk中包含使用posix头的本机库,android-ndk,native,static-libraries,apk,Android Ndk,Native,Static Libraries,Apk,我必须包括一个静态本机库(dsplink.a),它在AndroidNDK项目中使用SystemV IPCs 将我的库作为 LOCAL_LDLIBS := ($MY-PATH)/dsplink.a 给出以下错误: _sync_usr.c:(.text+0x24b4): undefined reference to `semget' _sync_usr.c:(.text+0x24d4): undefined reference to `__errno_location'

我必须包括一个静态本机库(dsplink.a),它在AndroidNDK项目中使用SystemV IPCs

将我的库作为

    LOCAL_LDLIBS := ($MY-PATH)/dsplink.a
给出以下错误:

    _sync_usr.c:(.text+0x24b4): undefined reference to `semget'
    _sync_usr.c:(.text+0x24d4): undefined reference to `__errno_location'
    _sync_usr.c:(.text+0x24f4): undefined reference to `semget'
    _sync_usr.c:(.text+0x2538): undefined reference to `semctl'
semctl,semget,。。函数包括在sys/sem.h中。
有没有办法包括这个库?

遗憾的是,这是不可能的

从android-ndk-r8/docs/system/libc/SYSV-IPC.html中提取

Android不支持System V IPCs,即 以下是标准Posix头文件:

<sys/sem.h>   /* SysV semaphores */
<sys/shm.h>   /* SysV shared memory segments */
<sys/msg.h>   /* SysV message queues */
<sys/ipc.h>   /* General IPC definitions */
/*SysV信号量*/
/*SysV共享内存段*/
/*SysV消息队列*/
/*一般IPC定义*/
这是因为,通过设计,它们会导致全球变暖
内核资源泄漏。

谢谢您的回复。我可以使用相同的库创建一个可执行文件“hello”,并在终端中运行。/hello.it工作得很好。有没有办法创建一个apk文件并以相同的方式运行。您如何创建可执行文件(NDK?)以及在哪个终端上运行它?(adb外壳?)我已经使用与主板兼容的工具链创建了可执行文件。。我在连接到主机ubuntu PC(minicom)的串口终端上运行可执行文件…好吧,这是可能的,但你不能用Android NDK的仿生libc使用库…我已经用我的rootfs中的libc.so替换了Android NDK中的libc.so。但它会导致同样的错误。。