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

时间:2017-06-12 16:20:40

标签: 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中,它是可用的。

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

1 个答案:

答案 0 :(得分:2)

MSYS2环境提供two toolchains以在Windows上定位两个不同的运行时。

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