作者H45 (!H45)
看板LinuxDev
标题[心得] Cross Compiler for Windows on Linux
时间Sun Dec 23 03:03:27 2007
这一篇的目的是描述安装 Cross Compiler for Windows on Linux 的步骤
嗯....终於把他搞定了
回想起来其实方法非常简单,但是过程非常痛苦
网路上的资料少之又少,别人成功的到我手上就是失败
到最後成功做出来,下一秒却又忘记是怎麽成功的......
为了让网友别陷入和我相同的失败回圈,我决定把这简单的方法分享出来。
(本来想打前言的....但是算了,应该没多少人愿意听我说故事 -.-)
(直接进入重点)
我的环境:
GNU/Linux 2.6.22-14 i686
gcc 3.4.6 (Ubuntu 3.4.6-6ubuntu2)
好啦,开始!
1. 下载 Cross-Hosted MinGW Build Tool
到 SourceForge.net 搜寻 MinGW - Minimalist GNU for Windows
然後找到 x86-mingw32-build.sh-0.0-20061107-1.tar.bz2 抓下来
2. 解压缩 x86-mingw32-build.sh-0.0-20061107-1.tar.bz2
> tar -jxf x86-mingw32-build.sh-0.0-20061107-1.tar.bz2
3. 执行!
等等,这个 Script 已经过期了,直接执行是会失败的 XD
来看看重点设定档案:x86-mingw32-build.sh.conf
4. 修改 x86-mingw32-build.sh.conf 到正确为止
> vim x86-mingw32-build.sh.conf
找到下面的文字:
assume GCC_VERSION 3.4.5-20060117-1
assume BINUTILS_VERSION 2.17.50-20060716-1
assume RUNTIME_VERSION 3.10-20060909-1
assume W32API_VERSION 3.7
改成目前最新版:
assume GCC_VERSION 3.4.5-20060117-1
assume BINUTILS_VERSION 2.17.50-20060824-1
assume RUNTIME_VERSION 3.13
assume W32API_VERSION 3.10
因为 BINUTILS-2.17.50-20060716-1 已经无法取得了,所以不修改是不行的
储存并离开 :wq
5. 真‧执行!
> chmod +x x86-mingw32-build.sh
> ./x86-mingw32-build.sh
6. 好啦,去泡杯茶等 Compile Error 吧....
可能错误 1. regex error
那个,这可能代表你的路径设到了安装路径
换一个安装路径也许能解决这个问题。
修改 x86-mingw32-build.sh.conf 的 INSTALL_DIR
可能错误 2. array error
那个,这可能代表你的 gcc 是 4 版以上的
换一个 gcc 也许能解决这个问题。
修改 /usr/bin/gcc 的连结到 gcc-3.4
可能错误 3. missing "makeinfo"
这个,安装 texinfo 套件就好了
sudo apt-get install texinfo
可能错误 4. 其他
这个,抱歉我没遇到过,没办法帮上忙唷......
7. 解决以上问题,再执行一次
> ./x86-mingw32-build.sh
8. 好啦,出门吃个点心吧!这要编译数十分钟。
9. 恭喜!你已经把 Cross Compiler for Windows on Linux 做出来了
10. 测试 Hello World! 程式
> vim minimal.c
编辑成以下内容:
#include <stdio.h>
int main(int argc, char *argv[]) {
puts("Hello World!");
}
储存并离开 :wq
> $INSTALL_DIR/bin/i386-mingw32-gcc minimal.c
> ls
a.exe
看到了没,a.exe!!!!!!
把他拿到 Windows 下面跑跑看吧!
(注:$INSTALL_DIR 预设是 $HOME/mingw)
後记:有人成功在 Linux 下把 Firefox for Windows 编译出来的吗?
我怎麽编译都失败......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.127.91
※ 编辑: H45 来自: 60.248.127.91 (12/23 03:04)
1F:推 TroyLee:何苦呢? XD 12/23 09:41
2F:推 zcjg:虽然我也想这样作,不过我没你厉害有GUTS 12/23 12:41
3F:→ H45:正好需要 Cross Compiler 才这样做的,不然我也不想 =.= 12/23 13:21
4F:推 freesamael:ubuntu 套件库有 mingw32 耶,不能用吗@@? 12/23 13:49
5F:→ H45:不知道 12/23 14:03
6F:推 oohay:ubuntu可以用apt装mingw32,指令则是i586-开头的 01/08 19:28