MinGW缺少系统会议(_SC_NPROCESSORS_ONLN)

MinGW missing sysconf(_SC_NPROCESSORS_ONLN)

本文关键字:SC NPROCESSORS ONLN 系统 会议 MinGW      更新时间:2023-10-16

>以下代码在Linux(CentOS 6.5)中编译和运行

#include <iostream>
#include <stdlib.h>
int main()
{
  long sysval = sysconf(_SC_NPROCESSORS_ONLN);
  std::cout << "Num processors = " << sysval << std::endl;
}

但是,在安装 MinGW + MSYS 并尝试在 Windows 盒子上编译它后,我得到:

error: '_SC_NPROCESSORS_ONLN' was not declared in this scope
error: 'sysconf' was not declared in this scope

我安装MinGW和MSYS的步骤是:

  1. 下载以下适用于MSYS和MinGW-get的软件包:

  2. 下载适用于您平台的MinGW软件包:

  3. 将 MinGW 包解压缩到 C:\MinGW

  4. 将 MSYS 包解压缩到 C:\MSYS\

  5. 将 MinGW-get 包解压缩到与 MinGW 相同的目录上述步骤 2 中使用的目录 (C:\MinGW)。

  6. 从目录中打开 MSYS 命令提示符(运行 MSYS.bat已提取 MSYS 包)并运行安装后配置脚本通过键入以下命令:

    /

    postinstall/pi.sh

    对所有问题回答"是",并提供目录的完整路径在提示输入位置时提取 MinGW 包的位置的明格。

  7. 运行以下命令,完成MSYS和MinGW的配置:

    明w-获取安装 mingw32-autotools

我也尝试过这个,并且在从这里下载最新的 MinGW 安装程序并使用交互式安装 GUI 时遇到了类似的错误。

MinGW没有附带stblib.h C++库吗? 如果是这样,MinGW 实现是否没有定义这个常用的 c++ 函数? 任何帮助将不胜感激。

(stdlib.h 比 C++ 更 C,但两者都可以使用它。

MinGW用于编译Windows程序以在Windows上运行;sysconf是POSIX(尽管在stdlib.h中,这是一个由C标准定义的文件;它有点令人困惑),Windows(因此MinGW)无法理解。(Linux理解POSIX,Mac OS X和BSD也是如此。

如果您的目标是计算处理器数量,请在SYSTEM_INFO中使用 dwNumberOfProcessor。如果你的目标是在Windows上运行POSIX程序,你需要的是Cygwin,而不是MinGW。

(我想迟到两个月总比没有好。

相关文章:
  • 没有找到相关文章