我正在尝试为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/