我正在尝试为Android系统编译libupnp 1.6.18。仿生产品似乎无法实现posix线程的全部功能。我可以配置它,但是如果构建失败会抛出此错误

/Volumes/androidSpace/nomad/toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: common/tv_ctrlpt-sample_util.o: in function SampleUtil_Initialize:common/sample_util.c:68: error: undefined reference to 'pthread_mutexattr_setkind_np


有人知道什么是解决此问题的最佳方法吗?

最佳答案

android libc(仿生)提供对pthread的内置支持,因此不需要其他链接(-lpthreads)。它没有实现POSIX线程的全部功能,并且不支持读/写锁,pthread_cancel(),进程共享的互斥锁和条件变量以及其他更高级的功能。

“ pthread_mutexattr_setkind_np”已弃用,并且是不可移植的功能。您应该用

int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);


由于这两个功能具有相同的签名,因此应该直截了当。

请参阅下面的链接以获取更多信息

http://www.unix.com/man-page/FreeBSD/3/pthread_mutexattr_setkind_np/

09-28 01:20