找不到pthread_cancel用android工具链编译

时间:2014-11-09 01:17:06

标签: android-ndk pthreads cross-compiling

我正在编译使用Android工具链配​​置的程序。我使用的是ndk r10c。我使用

创建了一个独立的工具链
$./make-standalone-toolchain.sh --ndk-dir=/home/justin/bin/android-ndk-r10c/ --install-dir=/home/justin/android-toolchain/

并且能够配置我的项目,但是当我make我得到

error: 'pthread_cancel' was not declared in this scope

标题有#include <pthread.h>,而this answer似乎表明我应该像往常一样使用pthread。

我错过了什么吗?

1 个答案:

答案 0 :(得分:5)

Bionic(Android&#f; libc)没有pthread_cancel。 IIRC,当我们讨论添加它时,我们选择不这样做,因为它的实现容易出错并且对性能有害(所有代码)。

据我们所知,pthreads的实现没有实现完全正确的pthread_cancel。即使您不使用pthread_cancel,也会对所有代码产生费用(因为pthread_cancel需要防止这么多代码段中断。