【问题标题】:How to Compile mingw-w64-crt如何编译 mingw-w64-crt
【发布时间】:2020-07-01 11:56:48
【问题描述】:

我在 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 步骤中遇到错误。具体来说:从类型“int”分配给类型“mbstate_t”{aka 'struct anonymous'} 时类型不兼容。更详细的错误图片可以在here找到。

我希望得到一些关于如何进行的指导。

【问题讨论】:

  • 这开始是关于如何编译 mingw-w64 的问题。请不要将球门柱移到其他位置(例如配置 GCC)。问一个新问题怎么样?

标签: windows gcc compiler-errors mingw-w64 msys2


【解决方案1】:

我建议您只打开 MSYS2 的 MinGW 环境之一(通过运行 mingw32.exe 或 mingw64.exe),然后通过运行以下命令安装完整的 MinGW-w64 工具链:

pacman -S $MINGW_PACKAGE_PREFIX-toolchain

工具链包括 GCC、MinGW-w64 库和 MinGW-w64 标头。如果这些预先构建的 MinGW-w64 对您来说足够好,那么您就完成了。

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

【讨论】:

  • 我知道存在预先构建的工具链,但是我希望自己编译,以便为我的non-gdb debugger 提供调试信息。请看我上面的编辑。
  • 好的,但我认为您使用了错误的工具链来执行此操作。请查看我编辑的答案。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多