0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

wxWidgetsの3.3系が出てきたのでMinGW-w64(GCC-15.1.0)でビルドする

Last updated at Posted at 2025-06-08

モチベーション

wxWidgetsの開発バージョンである3.3系がリリースされてた
https://wxwidgets.org/news/2025/06/wxwidgets-3.3.0-released/

基本的には互換性を保ってるけど、破壊的変更も含まれるのでChangelog読んでねとのこと
https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.3.0/docs/changes.txt

実験目的以外は安定版の3.2系を使うべきだけど、ちょっとだけ触ってみる

記事を書いている人の環境

  • Windows 11(10でも動くだろうけどもう手元に環境がない)
  • MinGW-w64 12.0.0(GCC-15.1.0)

ビルドする環境を整える

ここら辺からMinGW-w64(コンパイラ)とwxWidgetsを探してダウンロード展開する
https://github.com/niXman/mingw-builds-binaries/releases
https://wxwidgets.org/downloads/

記事を書いている人が使ったのはこれ(最新verを確認して自分で探すのがおすすめ!)
https://github.com/wxWidgets/wxWidgets/releases/download/v3.3.0/wxWidgets-3.3.0.zip
https://github.com/niXman/mingw-builds-binaries/releases/download/15.1.0-rt_v12-rev0/x86_64-15.1.0-release-mcf-seh-ucrt-rt_v12-rev0.7z

記事を書いている人はこんな感じで展開・配置(スペースを含むパスは避けたほうがいいかも?)
image.png

パスを通す(環境汚したくない人は、シェル上で毎回環境変数をセットしてもいいよ!)
image.png

wxWidgetsをビルドする

ビルドコマンドを叩く場所はここ
image.png

パワーシェルを開いて、上記のディレクトリに移動してビルドコマンドを叩く

cd C:\dev\wxWidgets-3.3.0\build\msw
mingw32-make SHELL=CMD.exe -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1

# -j4とかつけて並列コンパイルしてもいいけど、初回は必要なファイルのコピー等を行っているのでエラーになる
# どう見ても正道じゃないけど記事を書いている人は下記のようにしてる
mingw32-make SHELL=CMD.exe -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1
#(適当なタイミングでCtrl+Cで抜ける
mingw32-make SHELL=CMD.exe -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 clean
mingw32-make SHELL=CMD.exe -j 4 -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1

※ビルドのパラメーターはここを参照(UNICODEのオプションをなくなったみたいですね)
https://docs.wxwidgets.org/3.3/plat_msw_install.html

3.2系と3.3系で生成さるファイルの比較

変化があるのでコンパイルするときは依存ファイルに注意すること
image.png

サンプル集のビルド

wxWidgetsをビルドした時と同じ要領

# wxWidgetsをビルドした時と同じオプションを使うこと(いい感じにビルドコマンドを生成してくれる)
cd C:\dev\wxWidgets-3.3.0\samples
mingw32-make SHELL=CMD.exe -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1

相変わらず、webviewのサンプルはコンパイルエラーになるのでmakefile.gccの-limm32の位置を調整する

$(OBJS)\webview.exe: $(WEBVIEW_OBJECTS) $(OBJS)\webview_sample_rc.o
	$(foreach f,$(subst \,/,$(WEBVIEW_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp))
	@move /y $@.rsp.tmp $@.rsp >nul
	$(CXX) -o $@ @$@.rsp  $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME)  -Wl,--subsystem,windows -mwindows      $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS)  $(__WXLIB_WEBVIEW_p)  $(__WXLIB_STC_p) $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  -lwxscintilla$(WXDEBUGFLAG) $(__LIB_LEXILLA_p)  $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_LEXILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(__LIB_WEBP_p)   -lwxzlib$(WXDEBUGFLAG) -lwxregexu$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lgdiplus -lmsimg32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lws2_32 -lwininet -loleacc -luxtheme -limm32
	@-del $@.rsp

生成された各サンプルのフォルダ内のexeファイル実行してみる
image.png

Hallo World!

書きかけ!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?