【发布时间】:2020-12-26 09:39:33
【问题描述】:
将我的 C 程序从 pthreads、POSIX、
我从 2019 年开始使用 MAC。以下是我的错误和我的 gcc -version 输出。
如何升级以使用
7 年前的问题说不支持,现在还是这样吗?为什么不支持“标准”?
错误信息:
ruby.c:5:10:致命错误:找不到“threads.h”文件 #include
gcc --version
配置: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 苹果 clang 版本 11.0.0 (clang-1100.0.33.17) 目标: x86_64-apple-darwin19.6.0 线程模型:posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
【问题讨论】:
-
标准越新,尤其是在旧的建立语言中,它们的“标准”越低,得到的支持就越少。
-
在许多情况下,这种转变会被视为降级......例如,
pthreads对更多编译器和设备有更好的支持(有些人会争辩说,还有更好的 API)。跨度> -
我们很清楚
pthread.h是标准 (it's in the POSIX standard) -
发布新标准或新版本时,创建、测试和分发实现需要一些时间。 Mac 的使用年限没有直接关系,但您似乎确实安装了相当旧版本的 XCode 命令行工具,这很重要。我不确定是否有可用的版本支持 optional 线程功能,但我确实希望最新版本通过提供它或通过定义指示它们不提供它的功能测试宏来符合.