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
そのようなものを使用する必要があります。