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
그런 것을 사용해야 할 것입니다 .