Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5771846
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类:

2006-09-02 09:18:02

最近几天搞 wxWidgets,由于要同时编译应用程序的 Windows 版本,又懒得在虚拟机里面编译程序,于是想到用交叉编译的方式在 Linux 上编译好 Windows 版本的程序,再用 Wine 或者虚拟机来执行。试了一下,这种方法很好用,比在虚拟机里面编译程序快很多。

我的操作系统是 debian sarge,其中已经有 mingw32 编译器,只需安装:

apt-get install mingw32这会安装好 mingw32 交叉编译系统,用 i586-mingw32msvc-gcc 即可为 Windows 编译程序。

在编译 wxWidgets 的 Windows 版本之前,需要安装 DirectX 的头文件。大概是由于版权之类的原因,在 Debian 的 mingw32 中并未包含 DirectX 的头文件,只包含了 DirectX 的库,因此需要自己安装。如果不安装,在编译 wxWidgets 的时候会有警告,并且系统不会产生 wxDisplay 这个类。安装并不复杂,只要从网络上找到相关的头文件和库文件,并解压到 /usr/i586-mingw32msvc 目录中即可。

然后就可以编译 wxWidgets 了,下载并解压源码后,用如下命令可以编译:

./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --prefix=~/Workshop/mingw32 --enable-monolithic --disable-shared
make; make install-strip
make -C contrib; make -C contrib install-strip

编译完成后,进入 samples 目录,随便找一个例程 make 一下,便可产生 exe 文件了。要执行这个文件,需要 mingwm10.dll 这个文件,在 Debian 中,此文件位于 /usr/share/doc/mingw32-runtime 目录中,把它复制到当前目录,便可用 wine 执行了。如果没有问题,也可以把这个文件仍到 Wine 的 C:\Windows\system32 目录中。

下图是在 Wine 中执行程序的效果:

效果图

下图是在 win4lin 中执行程序的效果:

抓屏

阅读(11308) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~