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
後續會用到。