FreeBSD:宣言されていないSYS_gettid

FreeBSD:宣言されていないSYS_gettid

Rパッケージをインストールしようとしています(モンゴルの石)FreeBSD(FreeBSD 11.0-RELEASE-p9 amd64)でC ++ソースファイルをコンパイルするとエラーが発生します。

エラーは次のとおりですerror: 'SYS_gettid' undeclared

この問題を解決する方法を知っていますか?

ベストアンサー1

これらSYS_xxxxの定義には、Linuxのシステムコールの数が含まれます。主に次のように生のシステムコールを行うときに使用されます。syscall(2)包装紙一般的なglibcラッパー関数の代わりに。の場合gettid(), glibc にはシステムコールのラッパーは含まれていません。したがって、手動で呼び出す必要があります。

gettid()LinuxではスレッドIDを返します。FreeBSDには直接同等のものがないようです。

したがって、エラーが発生した場合、コンパイルしようとしているソフトウェアにはLinuxの厳しい要件があり、適切なアクションはバグレポートを送信してFreeBSDに移植することです。おそらくphtreadsそのようなものを使用する必要があります。

おすすめ記事