为什么MSYS2和mingw-w64-x86_64-toolchain中的unistd.h不同?

为什么MSYS2和mingw-w64-x86_64-toolchain中的unistd.h不同?,mingw,clion,msys2,unistd.h,Mingw,Clion,Msys2,Unistd.h,我正在运行推荐MinGW的CLion。最新的一个似乎是MSYS2。起初,CLion没有找到gcc、cmake等。为此,我必须安装mingw-w64-x86_64-toolchain,它在我的msys64(MSYS2安装文件夹)文件夹中创建一个mingw64文件夹 我试图编译的软件需要MSVC函数或POSIX函数,如sysconf。但是sysconf是未定义的,至少在mingw-w64-x86_64-toolchain的unistd.h中是这样。在MSYS2本身的主要unistd.h中,它是可用的

我正在运行推荐MinGW的CLion。最新的一个似乎是MSYS2。起初,CLion没有找到gcc、cmake等。为此,我必须安装mingw-w64-x86_64-toolchain,它在我的msys64(MSYS2安装文件夹)文件夹中创建一个mingw64文件夹

我试图编译的软件需要MSVC函数或POSIX函数,如
sysconf
。但是sysconf是未定义的,至少在mingw-w64-x86_64-toolchain的unistd.h中是这样。在MSYS2本身的主要unistd.h中,它是可用的


那么,最大的区别是什么?为什么它们不一样?

MSYS2环境为Windows上的两个不同运行时提供了目标

  • 位于/usr中的msys2工具链生成依赖于msys-2.0.dll POSIX仿真层的程序
  • 位于/mingw32或/mingw64中的MinGW工具链创建了本机Windows程序,这些程序基本上只能访问Microsoft的Header和lirbaries提供的功能,而不能访问其他功能。这些程序更容易重新分发给其他用户,并且通常运行得更快
  • 如果您确实需要POSIX的许多功能,那么您可能无法使用MinGW工具链