原文:
Mingw:在Linux系统下编译Windows的程序
链接:http://www.sudu.cn/info/html/edu/20071227/87635.html
Ubuntu下可以直接安装:
sudo apt-get install mingw 32 mingw 32-binutils mingw 32-runtime
安装后编译程序可以:
i586- mingw 32msvc-g++(编译C++程序)
i586- mingw 32msvc-gcc(编译C程序)
用法和gcc/g++非常类似。
如hello.c程序:
#include
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
MessageBox (NULL, "Hello", "Hello Demo", MB_OK);
return (0);
}
编译:
i586- mingw 32msvc-gcc hello.c -o hello.exe -mwindows
注:-mwindows指示其编译的是windows程序,若编译的是console(命令行)程序,则不需要这个参数。
若安装了wine,还可以测试一下这个程序:
wine hello.exe
读后感:
由于我工作中要用到mingw工具,费了老大劲在网上找安装mingw的资料,当我找了半天快放弃时,找到上面这篇文章。输入文中的命令行,终于看到了胜利的希望。这篇文章对我来说是及时雨,所以珍藏之。
20131209
修订:
在实际操作中文中的安装指令sudo apt-get install mingw32mingw32-binutilsmingw32-runtime还是报如下错误哦:
错误 http://us.archive.ubuntu.com/ubuntu/ precise/universe mingw32-runtime all 3.15.2-0ubuntu1
解析“us.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
获取:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe mingw32 amd64 4.2.1.dfsg-2ubuntu1 [23.0 MB]
下载 23.0 MB,耗时 1分 46秒 (216 kB/s)
无法下载 http://us.archive.ubuntu.com/ubuntu/pool/universe/m/mingw32-runtime/mingw32-runtime_3.15.2-0ubuntu1_all.deb 解析“us.archive.ubuntu.com:http”时,出现了某些故障(-5 - 没有与主机名关联的地址)
E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 --fix-missing 的选项再试试?
一筹莫展之际,我向同事问起,他因为前阵子才重装了ubuntu,所以四两拨千斤地对我说,“那个好弄,...”,我听了心里顿时开了花,他接着道,“那个应用名字改了...”。之后他在我键盘上敲了一段命令:sudo apt-get install mingw32。我看了顿时感慨万分,我之前试过命令sudo apt-get install mingw,也试过命令sudo apt-get installmingw32mingw32-binutilsmingw32-runtime,都极度接近答案,结果都是失败,真是差之分毫,谬之千里呀。
20131210
20131217增订:
近期我重装了一次mingw32,发现输入sudo apt-get install mingw32时提示下载进度一直是0,可是我前两天才轻松安装了一次呀,真是郁闷。后来同事提醒我之前把之前安装过的mingw32的deb文件拿过来,就不用下载也可以安装了。于是我从原来ubuntu环境中的/var/cache/apt/mingw32-binutils_2.20-0.2_amd64.deb, mingw32_4.2.1.dfsg-2ubuntu1_amd64.deb, mingw32-runtime_3.15.2-0ubuntu1_all.deb三个文件拷贝到新的ubuntu环境中,参照deb文件的安装方法,输入sudo dpkg -i xxx.deb,终于成功安装了mingw32,使用deb安装方法需要注意,要找全所有依赖的deb文件,然后按照依赖关系依次安装。比如安装mingw32,需要先安装mingw32-binutils和mingw32-runtime再安装mingw32.
20131217