如何编译 mingw-w64-crt

How to Compile mingw-w64-crt

我在 Windows 10 上并使用最新版本的 MSYS2(安装了 gcc:pacman -S gcc

我正在尝试从 mingw-w64-v7.0.0

编译 mingw-w64-headersmingw-w64-crt

在我的 MSYS2 安装目录中 C:\msys2 我创建了文件夹 mingw-w64,我在下面的前缀参数中引用了它。

为了编译其中的每一个,我使用相同的步骤(在适当的地方替换库的名称):

mkdir mingw-w64-crt && cd mingw-w64-crt
../mingw-w64-v7.0.0/mingw-w64-crt/configure --prefix=/mingw-w64
make
make install

这适用于 mingw-w64-headers 但是对于 mingw-w64-crt 我在 make 步骤遇到错误。具体来说:分配给类型 'mbstate_t' 时的不兼容类型 {aka 'struct anonymous'} 来自类型 'int'。可以找到更详细的错误图像 here

我希望得到有关如何继续的指导。

我建议您只打开一个 MSYS2 的 MinGW 环境(通过 运行ning mingw32.exe 或 mingw64.exe),然后通过 [=23= 安装完整的 MinGW-w64 工具链]宁此:

pacman -S $MINGW_PACKAGE_PREFIX-toolchain

工具链包括 GCC、MinGW-w64 库和 MinGW-w64 头文件。如果那些预构建的 MinGW-w64 东西对你来说足够好,那么你就完成了。

如果你想编译自己的MinGW-w64,那么应该可以使用你刚刚安装的环境来编译。要仔细检查您是否使用了正确的工具链,运行 which gcc 并确保它 returns /mingw64/bin/gcc/mingw32/bin/gcc.

执行以下操作使我能够成功编译:

pacman -S $MINGW_PACKAGE_PREFIX-toolchain
mkdir mingw-w64-crt && cd mingw-w64-crt
../mingw-w64-v7.0.0/mingw-w64-crt/configure --prefix=/mingw-w64 --with-sysroot=/mingw64
make -j %NUMBER_OF_PROCESSORS%
make install