我想彻底了解MSYS2平台环境的使用情况。部分描述可参见: 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 编译器进行链接?
小智 2
@HolyBlackCat:一些读者可能会错误地解释你的答案。这并没有错,但要了解详细信息,读者应该指向MSYS2 环境概述。
我的阅读:MINGW 编译器并没有过时,但是 Mingw 将代码链接到 MSVCRT 运行时库,该库往往会在某个未知的时间消亡。UCRT 将代码链接到新的(也许是未来的证明?)ucrt 运行时库,这可能会赢得 M$ 竞赛。但是,如果好心的读者想要将他的二进制文件与一些 MSVCRT 制作的 DLL、LIB 或 EXE 链接,他需要使用 Mingw。
| 归档时间: |
|
| 查看次数: |
7502 次 |
| 最近记录: |