msys2说 msys已死,而且msys2是独立开发的,不依赖其他包。
msys2安装完毕,启动时,有个选项提示:
选择这3个按钮最大的区别是环境变量:$MINGW_PACKAGE_PREFIX
如果选择MSYS2,这个环境变量为空,如果选择Mingw-w64 64bit,则该环境变量有值:
$ echo $MINGW_PACKAGE_PREFIX
mingw-w64-x86_64
注意msys2安装完毕后,要增加环境变量 msys64\user\bin:
还需要安装 git zip unzip等实用工具
Step 1: 下载wxWidgets源码
稳定版或者最新版自行选择
Step 2: 按照官方提示下载
pacman -S --needed --noconfirm make
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-libjpeg-turbo
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-libpng
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-libtiff
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-gcc
以下包也需要下载,对了pacman是msys2的包管理工具
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-gcc-libs
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-expat
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-xz
pacman -S --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-zlib
Step 3: 编译
在wxwidgets源码目录新建一个目录,如buildw在该目录内执行
../configure --with-msw --disable-shared --disable-precomp-headers
在我的虚拟机要运行几十分钟,不明白,完成之后
make
在期间会有个类型错误(注意在稳定版3.0.5才有,3.1.3貌似没有):
vi ../src/msw/mediactrl_am.cpp
在2235行,修改:0xfffffd9f 为 -609
//case 0xfffffd9f: // readystatechange in IActiveMovie2 and IMediaPlayer
case -609: // readystatechange in IActiveMovie2 and IMediaPlayer
编译也需要很久很久,我的win10虚拟机竟然需要几个小时编译完成。
PS:../src/msw/setup.h中要增加一句:
#define wxUSE_LIBMSPACK 0
后续会用到。