4

Android は pthread をサポートしていますか? -pthread オプションを使用すると、リンカ エラーが表示されるのはなぜですか。

i686-android-linux/bin/ld: -lpthread が見つかりません

#include <pthread.h>
#include <cxxabi.h>
extern "C" int printf (const char *, ...);
int main()
{
  try
    {
      pthread_exit (0);
    }
  catch (abi::__forced_unwind &)
    {
      printf ("caught forced unwind\n");
      throw;
    }
  catch (...)
    {
      printf ("caught ...\n");
      return 1;
    }
}
4

1 に答える 1

7

ドキュメントで確認できる限り、「-pthread」を使用する必要はありません。以下のチェックアウト:
http://mobilepearls.com/labs/native-android-api/#pthreads

NDK 公式ドキュメントの状態 (android-ndk-r8\docs\system\libc\OVERVIEW.html) からの情報:

PThread の実装:
Bionic の C ライブラリには、独自の pthread 実装がバンドルされています。 これは、次のような他の歴史的な C ライブラリとは異なります。 - 外部ライブラリに配置 (-lpthread) - 動的リンク時に弱いシンボルを使用してリンカー トリックを実行する

そのため、Bionic には、慣れ親しんだ標準的な方法 (-lpthread を使用) とは対照的に、直接 pthread が含まれていることに注意してください。

于 2012-06-15T09:48:54.353 に答える