msys2編譯WxWidgets

msys2說 msys已死,而且msys2是獨立開發的,不依賴其他包。

msys2安裝完畢,啓動時,有個選項提示:

選擇這3個按鈕最大的區別是環境變量:$MINGW_PACKAGE_PREFIX

如果選擇MSYS2,這個環境變量爲空,如果選擇Mingw-w64 64bit,則該環境變量有值:

$ echo $MINGW_PACKAGE_PREFIX
mingw-w64-x86_64

注意msys2安裝完畢後,要增加環境變量 msys64\user\bin:

msys2環境變量

還需要安裝 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

後續會用到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章