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之类的。

相关内容