首页 > 解决方案 > mingw.thread.h头文件安装不当

问题描述

我最初问了一个关于我让#include 头文件正常工作的问题。C++ 多线程错误。具体来说,我收到“未在此范围内声明'线程'”的错误。我开始怀疑我最初的假设是否错误地安装了 mingw.thread.h 头文件(位于此处:https ://github.com/meganz/mingw-std-threads )。这似乎有助于解决许多人的这些问题,

有人可以提供有关如何正确安装此文件的说明吗?

这些是我在终端上运行 gcc -v 时的结果:

使用内置规范。

COLLECT_GCC=c:\MinGW\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/6.3.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-6.3.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --with-gmp=/mingw --with-mpfr --with-mpc=/mingw --with-isl=/mingw --prefix=/mingw --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-6.3.0-1' --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --enable-libgomp --disable-libvtv --enable-nls
Thread model: win32
gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)

编辑:为了提供帮助,当我包含“mingw.thread.h”并编译时,我收到以下错误:

错误:#error 要使用 MinGW-std-threads 库,您需要将宏 _WIN32_WINNT 定义为 0x0501 (Windows XP) 或更高。

#error 要使用 MinGW-std-threads 库,您需要将宏 _WIN32_WINNT 定义为 0x0501 (Windows XP) 或更高版本。

标签: c++

解决方案


要使用此标题,请按照说明进行操作。

  1. 下载mingw.thread.h标头并将其保存在包含路径的某个位置。
  2. 在您的代码中更改#include <thread>#include "mingw.thread.h"
  3. 如果你还没有,你需要确保你定义_WIN32_WINNT正确。最简单的方法是通过 gcc 命令行,例如 add -D_WIN32_WINNT=0x0501

推荐阅读