缺少 MinGW 标准库 any.h?
MinGW standard library missing any.h?
我最近从 http://www.mingw.org/ 下载了 mingw 并安装了它的 c++ 编译器和依赖项,其中包括安装标准库 headers。我还成功编译了一个 hello world 程序,编译没问题,常见的旧 header 在那里并且工作正常(例如 string.h
)。
但是,当我尝试 #include <any>
时,它抛出了 any.h
不存在的错误。果然,当我查看 mingw\include\
时,没有 any.h
(而且我看到其他东西丢失了,例如 variant.h
)。
我查看了 mingw 包管理器,我已经安装了标准库的东西,没有其他相关的东西需要安装。 minGW 是否支持 C++17?如果是这样,我怎样才能获得这些较新的 header 文件?看来这应该是很明显的事情了。
any 功能需要 C++17 支持,因此如果您的编译器实现确实支持它,您可能希望在命令行中指定它,如下所示:
g++ -std=c++17 a.cpp
当然,这需要一个现代的 C++ 编译器,您可以从 nuwen.net.
您需要 mingw-w64,它提供了更新的 GCC 版本:
您可以在此处找到 7.2.0 下载:
我最近从 http://www.mingw.org/ 下载了 mingw 并安装了它的 c++ 编译器和依赖项,其中包括安装标准库 headers。我还成功编译了一个 hello world 程序,编译没问题,常见的旧 header 在那里并且工作正常(例如 string.h
)。
但是,当我尝试 #include <any>
时,它抛出了 any.h
不存在的错误。果然,当我查看 mingw\include\
时,没有 any.h
(而且我看到其他东西丢失了,例如 variant.h
)。
我查看了 mingw 包管理器,我已经安装了标准库的东西,没有其他相关的东西需要安装。 minGW 是否支持 C++17?如果是这样,我怎样才能获得这些较新的 header 文件?看来这应该是很明显的事情了。
any 功能需要 C++17 支持,因此如果您的编译器实现确实支持它,您可能希望在命令行中指定它,如下所示:
g++ -std=c++17 a.cpp
当然,这需要一个现代的 C++ 编译器,您可以从 nuwen.net.
您需要 mingw-w64,它提供了更新的 GCC 版本:
您可以在此处找到 7.2.0 下载: