Mingw-w64 C11threads.h 未找到?

Sea*_*mey 5 c multithreading pthreads mingw-w64

我正在尝试在程序中使用C11标准线程,并且专门使用Mingw-w64工具链x86_64-8.1.0-posix-seh-rt_v6-rev0

当我#include <threads.h>按照C11标准定义时,我No such file or directorygcc收到错误。我发现我可以#include <pthread.h>没有错误。顺便说一句,我正在将-std=c11论点传递给gcc

我在互联网上到处搜索有关标准C线程支持的信息。我能找到的所有信息都是C++的。有人可以向我解释一下为什么我不能使用C11标准threads.h库吗?

编辑:我还检查了是否定义了STDC_NO_THREADS宏。这似乎是未定义的。

#ifdef __STDC_NO_THREADS__
printf("We got no threads capp'n!\n");
#endif
Run Code Online (Sandbox Code Playgroud)

我没有收到有关没有线程的消息。

小智 0

我在Windows 11上也遇到了这个问题。Mingw-w64和vs 2022下没有threads.h 。但是如果你想使用它,你可以在上面安装Msys2和gcc。安装后你可以在那里找到头文件!我将thread.h添加到源文件中并进行测试。当然,Msys2 中的 gcc 编译它时没有错误和警告。最后,我将__STDC_NO_THREADS____STDC_NO_ATOMICS__添加到源代码中,编译器传递宏未声明的错误。因此编译器支持C11标准并发支持库。