c++ - 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) 或更高版本。
解决方案
要使用此标题,请按照说明进行操作。
- 下载
mingw.thread.h
标头并将其保存在包含路径的某个位置。 - 在您的代码中更改
#include <thread>
为#include "mingw.thread.h"
- 如果你还没有,你需要确保你定义
_WIN32_WINNT
正确。最简单的方法是通过 gcc 命令行,例如 add-D_WIN32_WINNT=0x0501
。
推荐阅读
- protractor - 如何使用量角器滚动具有长列表的页面?
- angular - Angular 7 中的 SCSS 文件
- java - 为什么我不能使用 nextLine() 代替 next()?
- go - protoc-gen-go struct xxx 隐蔽到 map[string]interface{}
- android - APK 在某些设备上运行良好,但在其他设备上运行良好
- javascript - jQuery UI 可通过旋转元素调整大小
- javascript - HTML/Javascript 在表格中查找但不包括不可搜索区域
- c# - 在 .NET CORE 中,如何执行 XUnit 测试以检查和验证从 AppSetting.json 加载的正确信息
- c++ - 为 Microsoft Visual C++ 构建工具安装 cudamat 和错误
- javascript - 使用DOM的HTML中带有参数的Javascript调用函数