0

我想做的是threads.h在 Windows 10 上使用 C11 标准。我已经用 MinGW 安装了 Code::Blocks。我已经设置了编译器设置-std=c11标志,但没有运气。我还安装了 Win64 版本的 MinGW,并将其设置为默认值,-std=c11也没有积极的结果。我已经下载了最新版本的tdm-gcc并且没有任何改变。

我得到的只是:fatal error: threads.h: No such file or directory

我知道有人刚刚安装了最新版本的 Code::Blocks 并且他拥有threads.h. 我也这样做了,但似乎它不起作用。我已经阅读了这里的所有问题,我几乎只阅读问题中的第一句话就知道答案和评论。

我发现Pelles C windows 开发套件有 C11 标准可供使用。可选库threads.h已经集成。我已经安装了它,但是我有很多 GNU 静态库 (.a) 应该编译成 Windows 静态或动态库,所以会非常耗时。

任何帮助或任何新信息将不胜感激。

4

1 回答 1

1

TDM-GCC 最后一次出现在 5.1.0 版本(2015 年 6 月 28 日发布)。从那以后,他们没有更新他们的网站或下载。

至于 C11 线程本身,它们是编译器供应商不需要提供的可选功能。测试是否__STDC_NO_THREADS__存在于您的编译器中。然后根据测试尝试包含threads.h.

C11 线程函数是基于关闭的pthreads,并且大多数函数和结构几乎是 POSIX 线程接口的直接一对一映射。

因此,如果您仍然倾向于在 Windows 上尝试 C11 线程(因为您使用的是 TDM),我建议您现在放弃它并使用一个稍微旧但稳定winpthreads的库,它提供几乎相同的功能。将您的编译器升级到最新的 MingW-w64以从中受益。

可悲的是,我所知道的 Windows 上还没有 C11 线程。

于 2018-06-12T21:42:06.433 回答