【发布时间】:2014-06-24 06:36:05
【问题描述】:
我想在哪里构建 MinGW-w64:
答:我想在 Linux(64 位)上编译 MinGW 本身。
B:我希望 MinGW 工具(编译器等)在 Linux(64 位)上运行。
C:我希望 MinGW 工具(编译器等)生成在 Windows 64 位(Win7 和 Win8)上运行的代码。
我在配置阶段遇到了问题。我用谷歌搜索了一下,但我找不到我需要传递哪些选项来配置。
我已经从 (https://svn.code.sf.net/p/mingw-w64/code/trunk/) 下载了 MinGW-w64 SVN 的源代码。 (AFAICT 这是当前的官方 repo)。
源有一个文本帮助 (mingw-w64-doc/howto-build/mingw-w64-howto-build.txt)。然而,这主要是为那些想要在 Windows 上运行 MinGW 工具的人设计的。
示例选项(对于非 multilib w64 目标)是:
--host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-multilib
但我想我希望主机选项指的是 linux(对吗?)。我试过了
--host=x86_64-linux-gnu和
--host=x86_64-pc-linux-gnu但没有运气。
我得到错误:
配置:错误:请检查 mingw-w64 标头设置和构建/主机选项是否设置正确。配置:错误:../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-crt/mingw-w64-crt 配置失败
完整的日志是
检查是否启用 Makefile 的维护者特定部分...否 检查与 BSD 兼容的安装... /usr/bin/install -c 检查构建环境是否健全......是的 /make/tool/MinGW/svn/mingw-w64-v6615-2014-05-07/build-aux/missing:未知的“--is-lightweight”选项 尝试`/make/tool/MinGW/svn/mingw-w64-v6615-2014-05-07/build-aux/missing --help' 了解更多信息 配置:警告:“缺失”脚本太旧或缺失 检查 x86_64-linux-gnu-strip... 否 检查脱衣...脱衣 检查线程安全的 mkdir -p... /bin/mkdir -p 检查 gawk... gawk 检查 make 是否设置 $(MAKE)... 是 检查make是否支持嵌套变量...是的 检查构建系统类型... x86_64-unknown-linux-gnu 检查主机系统类型... x86_64-pc-linux-gnu 检查是否构建标题...是的 检查是否构建 crt... 是 检查是否构建可选库...否 检查是否构建可选工具...否 检查生成的文件是否比配置更新...完成 配置:创建 ./config.status config.status:创建 Makefile config.status:创建 config.h config.status:config.h 不变 === 在 mingw-w64-headers 中配置 (/make/tool/MinGW/build/v6615-2014-05-07/mingw-w64-headers) 配置:运行 /bin/bash ../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-headers/configure --disable-option-checking '--prefix=/ make/tool/MinGW/use/v6615/x86_64-w64-mingw32''--target=x86_64-w64-mingw32'''--host=x86_64-linux-gnu''--disable-multilib''--with- sysroot=/make/tool/MinGW/use/v6615/x86_64-w64-mingw32' 'host_alias=x86_64-linux-gnu' 'target_alias=x86_64-w64-mingw32' --cache-file=/dev/null --srcdir =../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-headers 检查与 BSD 兼容的安装... /usr/bin/install -c 检查构建环境是否健全......是的 /make/tool/MinGW/svn/mingw-w64-v6615-2014-05-07/mingw-w64-headers/build-aux/missing:未知的“--is-lightweight”选项 尝试`/make/tool/MinGW/svn/mingw-w64-v6615-2014-05-07/mingw-w64-headers/build-aux/missing --help' 获取更多信息 配置:警告:“缺失”脚本太旧或缺失 检查 x86_64-linux-gnu-strip... 否 检查脱衣...脱衣 检查线程安全的 mkdir -p... /bin/mkdir -p 检查 gawk... gawk 检查 make 是否设置 $(MAKE)... 是 检查make是否支持嵌套变量...是的 检查是否启用 Makefile 的维护者特定部分...否 检查构建系统类型... x86_64-unknown-linux-gnu 检查主机系统类型... x86_64-pc-linux-gnu 检查不截断输出的 sed... /bin/sed 检查是否使用 widl 重建标头...否 检查是否为 Cygwin 构建 w32api 包...否 检查 c 运行时标头...是的 检查可选的 sdk 标头... ddk,directx 检查是否启用了安装 idl 文件...否 检查是否启用安全 API...否 检查生成的文件是否比配置更新...完成 配置:创建 ./config.status config.status:创建 Makefile config.status: 创建 crt/_mingw.h config.status:创建 config.h config.status:config.h 不变 === 在 mingw-w64-crt 中配置 (/make/tool/MinGW/build/v6615-2014-05-07/mingw-w64-crt) 配置:运行 /bin/bash ../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-crt/configure --disable-option-checking '--prefix=/ make/tool/MinGW/use/v6615/x86_64-w64-mingw32''--target=x86_64-w64-mingw32'''--host=x86_64-linux-gnu''--disable-multilib''--with- sysroot=/make/tool/MinGW/use/v6615/x86_64-w64-mingw32' 'host_alias=x86_64-linux-gnu' 'target_alias=x86_64-w64-mingw32' --cache-file=/dev/null --srcdir =../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-crt 检查与 BSD 兼容的安装... /usr/bin/install -c 检查构建环境是否健全......是的 检查 x86_64-linux-gnu-strip... 否 检查脱衣...脱衣 检查线程安全的 mkdir -p... /bin/mkdir -p 检查 gawk... gawk 检查 make 是否设置 $(MAKE)... 是 检查make是否支持嵌套变量...是的 检查是否启用 Makefile 的维护者特定部分...否 检查构建系统类型... x86_64-unknown-linux-gnu 检查主机系统类型... x86_64-pc-linux-gnu 检查 sysroot... /make/tool/MinGW/use/v6615/x86_64-w64-mingw32 检查不截断输出的 sed... /bin/sed 检查 gawk ...(缓存) gawk 检查 x86_64-linux-gnu-gcc... x86_64-linux-gnu-gcc 检查 C 编译器是否工作......是的 检查 C 编译器默认输出文件名... a.out 检查可执行文件的后缀... 检查我们是否在交叉编译...否 检查目标文件的后缀... o 检查我们是否正在使用 GNU C 编译器...是的 检查 x86_64-linux-gnu-gcc 是否接受 -g... 是 检查 x86_64-linux-gnu-gcc 选项以接受 ISO C89... 不需要 检查 x86_64-linux-gnu-gcc 是否同时理解 -c 和 -o ...是 检查 make 使用的包含样式... GNU 检查 x86_64-linux-gnu-gcc 的依赖样式... gcc3 检查 x86_64-linux-gnu-g++... x86_64-linux-gnu-g++ 检查我们是否正在使用 GNU C++ 编译器...是的 检查 x86_64-linux-gnu-g++ 是否接受 -g... 是 检查 x86_64-linux-gnu-g++ 的依赖样式... gcc3 检查如何运行 C 预处理器... x86_64-linux-gnu-gcc -E 检查 x86_64-linux-gnu-ranlib... 否 检查ranlib...ranlib 检查 x86_64-linux-gnu-dlltool... 否 检查 dlltool... 否 检查 x86_64-linux-gnu-ar... 否 检查 x86_64-linux-gnu-lib... 否 检查 x86_64-linux-gnu-link... 否 检查 ar...ar 检查存档器 (ar) 界面... ar 检查 x86_64-linux-gnu-gcc 的依赖样式... gcc3 检查 x86_64-linux-gnu-as... 否 检查 as... as 检查是否为 Cygwin 构建 w32api 包...否 检查是否构建 Win32 库...否 检查是否构建 Win64 库...是 检查是否构建 WinCE 库...否 检查是否启用通配符...否 检查是否启用私有导出...否 检查是否启用延迟导入库...否 检查是否启用实验功能...否 检查编译器是否支持 -municode... 否 检查处理长行的 grep 和 -e... /bin/grep 检查 egrep... /bin/grep -E 检查 ANSI C 头文件...是的 检查 sys/types.h... 是 检查 sys/stat.h... 是的 检查stdlib.h ...是的 检查 string.h... 是的 检查内存.h ...是的 检查strings.h ...是的 检查 inttypes.h ... 是的 检查stdint.h ...是的 检查 unistd.h ...是的 检查 _mingw_mac.h 可用性...否 检查 _mingw_mac.h 的存在...否 检查_mingw_mac.h ...否 配置:错误:请检查 mingw-w64 标头设置和构建/主机选项是否设置正确。 配置:错误:../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-crt/mingw-w64-crt 配置失败注意:我可以成功地从源代码编译原生 GCC 和 Clang。
目的:
我的最终目标是使用最新的 Clang 为 Windows 7/8 64 位(包括 D3D11 和 OpenGL)生成 C++14 代码。
我想构建主干 MinGW,因为最新的 Clang 会生成默认 MinGW 无法组装的汇编代码(主要是“行尾垃圾”错误)。
截至 2014 年 5 月 7 日(今天),只有 Clang 提供完整的 C++14 支持,并且我正在使用仅在 Clang 中可用的功能(例如:变量模板)。
然而,Clang 依赖 GCC / MinGW 进行组装和链接。
信息: 操作系统:Linux Mint 16 64 位 (XFCE)。
感谢所有帮助。
【问题讨论】: