首页 文章

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

提问于
浏览
0

我正在运行推荐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 回答

  • 2

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

    • 位于/ usr中的msys2工具链使程序依赖于msys-2.0.dll POSIX仿真层 .

    • 位于/ mingw32或/ mingw64中的MinGW工具链创建了本机Windows程序,基本上只能访问Microsoft的 Headers 和lirbaries提供的功能,而不是其他 . 这些程序更容易重新分发给其他用户,并且通常运行得更快 .

    如果你真的需要POSIX的很多功能,你可能无法使用MinGW工具链 .

相关问题