gpt4 book ai didi

c++ - MinGW 缺少 sysconf(_SC_NPROCESSORS_ONLN)

转载 作者:可可西里 更新时间:2023-11-01 11:18:46 28 4
gpt4 key购买 nike

以下代码在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.batMSYS 包被提取)并运行安装后配置脚本通过键入以下命令:

    /postinstall/pi.sh

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

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

    mingw-get install mingw32-autotools

我也试过这个,在从 here 下载最新的 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 中使用 dwNumberOfProcessors .如果您的目标是在 Windows 上运行 POSIX 程序,您需要 Cygwin ,不是 MinGW。

(我猜,迟到两个月总比不到好。)

关于c++ - MinGW 缺少 sysconf(_SC_NPROCESSORS_ONLN),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com