JHo*_*wIX 2 c++ windows std msys mingw-w64
以下代码在 Linux (CentOS 6.5) 下编译运行
#include <iostream>
#include <stdlib.h>
int main()
{
long sysval = sysconf(_SC_NPROCESSORS_ONLN);
std::cout << "Num processors = " << sysval << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但是,在安装 MinGW + MSYS 并尝试在 Windows 机器上编译后,我得到:
error: '_SC_NPROCESSORS_ONLN' was not declared in this scope
error: 'sysconf' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
我遵循的安装 MinGW 和 MSYS 的步骤是:
为您的平台下载MinGW包:
将 MinGW 包解压到 C:\MinGW
将 MSYS 包解压到 C:\MSYS\
将 MinGW-get 包解压到与上述步骤 2 中使用的 MinGW 目录 (C:\MinGW) 相同的目录。
打开 MSYS 命令提示符(从解压缩 MSYS 包的目录运行 MSYS.bat)并通过键入以下命令运行安装后配置脚本:
/安装后/pi.sh
对所有问题回答“是”,并在提示输入 MinGW 的位置时提供解压缩 MinGW 包的目录的完整路径。
运行以下命令完成 MSYS 和 MinGW 的配置:
mingw-get 安装 mingw32-autotools
我也试过这个,从这里下载最新的 MinGW 安装程序并使用交互式安装 GUI时遇到了类似的错误。
MinGW 没有附带 stblib.h C++ 库吗?如果是,MinGW 实现是否没有定义这个常用的 c++ 函数?任何帮助将非常感激。
小智 5
(stdlib.h 比 C++ 更像是 C,但两者都可以使用它。)
MinGW 用于编译 Windows 程序以在 Windows 上运行;sysconf 是 POSIX(尽管在 stdlib.h 中,这是一个由 C 标准定义的文件;它有点令人困惑),Windows(因此 MinGW)无法理解。(Linux 理解 POSIX,Mac OS X 和 BSD 也是如此。)
如果您的目标是计算处理器数量,请在SYSTEM_INFO 中使用dwNumberOfProcessors。如果您的目标是在 Windows 上运行 POSIX 程序,您需要Cygwin而不是 MinGW。
(我想,迟到两个月总比没有好。)