MinGW 下编译wxWidgets
大概一年多前,在wxWidgets和Qt中选择了Qt。但是在后来的开发中越来越讨厌Qt的那套做法了。突然怀念起 wxWidgets来。所以今天又捡起它。重新开始用wxWidgets做UI。要使用wxWidgets就必须要编译它。因为wxWidgets官方是 不提供与编译文件的.
下面就说明一下如何编译wxWidgets,我使用的开发环境是MinGW+Msys.其实编译非常简单。但是记录下过程,免得哪天忘记了.
1.下载wxWidgets的源代码.具体下载地址参考官方网站 。 我下载是是2.8.10版本的代码。也可以从本 站下载 。
2.下载下来的文件是一个可执行文件(也有可能是zip或者gz文件,根据下载是的选择不同),我将其安装到了C:/wxWidgets- 2.8.10. 其实安装到哪里都一样,因为这只是个源代码而已。在编译完成后,我们将会使用其库文件和头文件,其它东西都可以删除了。当然,想学习源代码的除外。
3.进入Msys命令行,注意不是Windows的命令行。切换目录到C:/wxWidgets-2.8.10 然后执行如下命令配置编译环境:
./configure –-enable-icocur –-enable-official_build –enable-unicode –-enable-monolithic –disable-shared –enable-plugins –with-opengl
这个命令的参数需要解释一下:
1.这里出现了一些选项,实际上可用的选项更多。具体有哪些选项请到如下文件中查看:C:/wxWidgets-2.8.10 /configure. 从第939行开始,列出所有的选项.
2.解释一下比较特殊的几个:
- —enable-icocur 使用Windows平台上的ico和cur文件来显示图标和光标。
- –enable-official_build 这是官方编译。wxWidgets编译区分官方和非官方编译,非官方编译会在输出的库的名称上加一个vendor的名字。由于我们没有修改任何代码,就算 是官方编译好了。
- –enable-unicode 使用unicode
- –enable-monolithic 将全部wxWidgets代码编译到一个库文件。这样可以减少库文件的数目。但是会增加库文件的大小。即使用了这个配置项,也会输出不止一个库文件,例如 我编译的结果输出了如下的库文件:libwx_mswu_gl-2.8.a是可选库,所以单独列出,libwxexpat- 2.8.a,libwxjpeg-2.8.a,libwxpng-2.8.a,libwxregexu-2.8.a,libwxtiff-2.8.a,libwxzlib-2.8.a 这些库文件其源代码并不属于wxWidgets库,wxWidgets本身依赖于这些库,如果你机器上恰好有没有安装这些库,那么wxWidget内部给 你预备了一份,直接替你编译好了.
- –disable-shared 不要使用动态库。具体来说就是编译输出的都是静态库,这样编译我们的应用程序的时候,wxWidget就会直接编译到exe中去。而无需发布动态库了.
3.configure执行完毕后,执行make
4.make后执行make install 执行安装.
如果你不打算自己编译,也可以从这里下载 。