我想彻底了解MSYS2平台环境的使用情况。
部分描述可在以下位置找到:https://www.msys2.org/docs/environments/ https://www.msys2.org/docs/environments/
我理解的事情:
-
MSYS环境它用于构建仅在 MSYS2 环境中运行的应用程序。通过 cygwin C 库可以使用 POSIX 层。应用程序使用 64 位 GCC 进行编译(安装的 32 位 MSYS2 除外)。
-
MINGW64 环境它用于创建独立于 MSYS2 环境运行的本机 Windows 应用程序。使用旧的MSVCRT技术。应用程序使用 64 位 GCC 进行编译。
-
MINGW32 环境它用于创建独立于 MSYS2 环境运行的本机 Windows 应用程序。使用旧的MSVCRT技术。应用程序使用 32 位 GCC 编译
-
UCRT64环境应用程序使用 64 位 GCC 进行编译。使用较新的 UCRT 技术。
-
CLANG64环境应用程序使用 64 位 LLVM 进行编译。使用较新的 UCRT 技术。
UCRT64 和 CLANG64 之间的区别是编译器不同。 Clang(LLVM 的前端)与 GCC 命令部分兼容。
我的问题:
但是什么时候使用UCRT64,什么时候使用MINGW64?我可以使用 UCRT64 构建可以动态或静态链接的库,然后使用 MSVC 编译器构建项目吗?是否可以使用 MSYS2 构建一个库,以便稍后使用 MSVC 编译器进行链接?
@HolyBlackCat:一些读者可能会错误地解释你的答案。这并没有错,但要了解细节,我们应该读者指出MSYS2 环境概述 https://www.msys2.org/docs/environments/.
我的阅读:MINGW 编译器并没有过时,但是 Mingw 将代码链接到 MSVCRT 运行时库,该库往往会在某个未知的时间消亡。 UCRT 将代码链接到新的(也许是未来的证明?)ucrt 运行时库,这可能会赢得 M$ 竞赛。
但是,如果好心的读者想要将他的二进制文件与一些 MSVCRT 制作的 DLL、LIB 或 EXE 链接,他可以need使用Mingw。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)