wxWidgets安装-Windows MSYS2(Mingw)

wxWidgets安装-Windows MSYS2(Mingw)


尽管在Windows平台下Visual Studio编译工具是使用人数最多的编译工具链,但其体积十分庞大。有时候我们想要用更轻量的工具链来用于编译。在Windows平台上,MSYS2中的Mingw就是一个选择。

环境准备

  1. 安装MSYS2(略)
    登录MSYS2官网https://www.msys2.org/,下载安装包,一路点点点即可。安装之后记得更新源,例如可以参考这篇文章
  2. 安装make
    打开MSYS2命令行,输入pacman -S make,需要确认时输入y
  3. 安装mingw工具链
    按照这篇文章所描述的过程安装mingw工具链。这里务必保证所用编译器为mingw-w64-x86_64-gcc,而不是直接pacman -S gcc所安装的gcc,否则编译文件很可能出现不明错误。

下载、解压并编译源代码

登录wxWidgets官网(https://www.wxwidgets.org/downloads/)下载源代码:
wx1
将源代码解压,比如解压到了wx314文件夹中。用MSYS2命令行进入wx314文件夹,创建build_debug文件夹并进入:

mkdir build_debug
cd build_debug

接下来要进行编译设置。设置时有好多选项,可以通过以下命令来查看有哪些选项:

../configure --help

其中有一个选项是--disable-shared,如果加上的话编译出来的是静态库(.lib),不加的话编译出来的是动态库(.dll)。

我个人发现如果编译出来的是动态库,则其编译后的示例文件较小,仅有几个M,但是需要dll文件的支持。此外,只能在MSYS2命令行中打开编译好的exe文件,而不能直接双击打开exe文件,否则会提示找不到libjpeg-8.dll。其原因个人猜测是因为在编译的时候链接的是MSYS中的库libjpeg.dll.a,而双击时系统显然找不到对应的libjpeg-8.dll,如果有人有解决方法,欢迎留言分享!

而如果编译出来的是静态库,则其编译后的示例文件较大,一般有100M左右,不需要任何dll文件支持,能够双击运行。至于如何选择,大家可以自行决定,这里选择编译动态库,并激活debug支持:

../configure --enable_debug

之后经过漫长等待,出现配置结果摘要:

Configured wxWidgets 3.1.4 for `x86_64-w64-mingw32'

  Which GUI toolkit should wxWidgets use?                 msw
  Should wxWidgets be compiled into single library?       no
  Should wxWidgets be linked as a shared library?         yes
  Should wxWidgets support Unicode?                       yes (using wchar_t)
  What level of wxWidgets compatibility should be enabled?
                                       wxWidgets 2.6      no
                                       wxWidgets 2.8      yes
  Which libraries should wxWidgets use?
                                       STL                no
                                       jpeg               sys
                                       png                sys
                                       regex              builtin
                                       tiff               sys
                                       zlib               sys
                                       expat              sys
                                       libmspack          no
                                       sdl                no

之后开7个任务进行并行编译:

make -j7

之后进行了更漫长的等待,编译结束。此时根据前面所选,将会在wx314/build_debug/lib文件夹中出现.lib静态库或.dll动态库。

验证安装成功

接下来进入wx314/build_debug/demo/bombs文件夹,编译示例程序:

扫描二维码关注公众号,回复: 15091554 查看本文章
cd wx314/build_debug/demo/bombs
make

编译完成后将wx314/build_debug/lib文件夹中的wxbase30u_gcc_custom.dllwxmsw30u_core_gcc_custom.dll两个文件复制到wx314/build_debug/demo/bombs文件夹中并运行示例程序:

./bombs.exe

wxWidgets版扫雷应该会出现在屏幕前:
wx2
wx314/build_debug/中的samples和demos文件夹中还有很多示例程序,有兴趣的话可以逐一进行研究。

相关链接
wxWidgets安装-Windows Visual Studio

猜你喜欢

转载自blog.csdn.net/willian113/article/details/107886191