2011-07-07 73 views
0

我想在我的Windows系统上构建一个交叉编译器(x86-> 64),其目标是定位到Windows 64,但是我的软件目前依赖于开源的库,这些库也有开源的依赖关系,没有预编译的二进制文件可供我编译。这意味着如果我想要我编译它们的64位版本。为什么我的(x86-> 64)windows交叉编译器编译失败?

我已经安装了MSYS和mingw,我也正在将mingw-w64添加到组合中,以便我最终可以编译64位格式的库以供我的软件使用。我尽可能按照步骤using these instructions以及该页面上列出的顺序执行步骤,目前我正在执行“构建GCC核心交叉编译器(s)”的步骤,但是当我尝试编译与线:

$ ../gcc-4.6.1/configure --target = x86_64的-W64-的mingw32 --enable-目标=所有& &使-j 6全GCC & &化妆 - j 6 install-gcc

我得到了output pasted here。我应该注意到,我当然会剪掉先前执行的命令,最后一个命令是在显示所有错误之前列出的最后一个命令。另外,我不知道是否由于'-j 6'参数导致的所有错误的原因,但是至少在之前的所有错误都看起来成功。

什么问题,我该如何解决?

哦,预计有一个潜在的建议;不,我不能切换到cygwin。

编辑:单独执行它们,here's the output of the configure commandthe output produced by make all-gcc (no -j argument)config.log后好了。请注意,我没有事先运行make clean,这可能解释了不同的结局,我没有为了编写此更新而花费时间,但是我想我只是创建一个不同的编译文件夹并重新执行它干净地希望看到与以前一样的错误,同时等待响应。

编辑2:本make all-gcc失败再次如预期,这一次the output应该帮助多一点希望。

非常感谢您的帮助。

+0

得到错误之后,再次运行make,而不使用-j选项来查看确切的命令生成它。看看这些错误,似乎汇编程序正在对它无法识别的指令进行检测,所以您的工具链可能不会准备好发出x64代码。 – eriktous

+0

我按照你的建议开始编译过程。你说什么是有道理的..但我觉得它很奇怪,因为在我看来,这一步的整个目的是编译能够做到这一点的编译器.. – Geoff

回答

0

您的config.log显示构建过程将使用x86_64-w64-mingw32/bin中的二进制文件来处理诸如ar之类的内容......这些仅供内部编译器使用,它们应该全部在您的/ mingw/bin目录。我强烈建议在mingw-w64-public邮件列表上寻求帮助。

+0

我不知道该怎么做你说的第一件事,但我刚刚注册到邮件列表并发送了一封电子邮件。感谢您的建议! – Geoff