【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (960レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
703
(1): 2014/09/01(月)00:00 ID:X69OanmZ(1/10) AAS
>>700
>wxWidgetsは通常のGUI用ライブラリに一枚レイヤを重ねた形になるので
>型情報・関数テーブルの情報だけで結構容量食う

オイラはコンパイラの基本部分に詳しいが、それだけで1MBなどには
ならない。
704
(1): 2014/09/01(月)00:06 ID:X69OanmZ(2/10) AAS
>>694
諦めることも手かも知れないけど、やっている事の規模とサイズとの
ギャップに納得がいかない人もいるはず。

wxWidgetsはラッピング・ライブラリの一種。

8bit時代、16bit時代を知る人にとって、Widget 程度が64KBを超える
事があってはならない。どういうプログラミングをしたら2MBにもなる
のか。
706: 2014/09/01(月)07:25 ID:X69OanmZ(3/10) AAS
>>591 のライブラリを samples/keyboard にも使ってみたら、
keyboard.exe のサイズを 1,619,968 にまで縮小することに成功した。
コンパイラは MinGW32 のまま。
条件は:release, 非UNICODE(ASCII), SHARED=0(静的リンク), MONOLITHIC = 1

どうやら MONOLITHIC であるかどうかは最終 exe サイズには関係してないらしい。
ライブラリと言うのは集めてもばらしても、最終 exe のリンク結果には影響を
及ぼさない事が基本なので、元々当たり前なことなのだが。
省17
707: 2014/09/01(月)07:31 ID:X69OanmZ(4/10) AAS
誤:>>591
正:>>691
709: 2014/09/01(月)07:45 ID:X69OanmZ(5/10) AAS
>>694
>あとコア、主要のライブラリのビルドから、ダイナミックリンクを徹底してOSに丸投げしたら小さくなるだろ。

>>692」で示した Win32 import library は、Windows のシステム DLL
をリンクするための小さなライブラリ。例えば、
libcomctrl32 をリンクしていても、実際は、comctrl32.dll が動的リンク
される。libcomctrl32.a は、MinGW32 が用意している import library で:

/xxx/CodeBlocks/MinGW/lib/libcomctl32.a # 86,428 bytes
省3
711: 2014/09/01(月)14:09 ID:X69OanmZ(6/10) AAS
MONOLITHIC の値が違うと別の *.o が作成されることが判明。
以下は、SHARED=0(静的リンク)の場合の、MONOLITHIC が 0 と 1 の場合。

CORELIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
  $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
  $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \
  $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \
  $(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I..\..\include \
省13
712: 2014/09/01(月)14:13 ID:X69OanmZ(7/10) AAS
違いは、-DwxUSE_BASE の部分で、
 MONOLITHIC = 0 の場合 : -DwxUSE_BASE=0  // #define wxUSE_BASE 0
 MONOLITHIC = 1 の場合 : -DwxUSE_BASE=1  // #define wxUSE_BASE 1
となっている。

例えば、/xxx/src/msw/dc.cpp は、同じソースに対し make に渡すオプションに応じて
以下の2種類の *.o ファイルが作成される。
1つ目は、MONOLITHIC=0の時に作られ、2つ目は、MONOLITHIC=1の時に作られる。
省12
714: 2014/09/01(月)16:14 ID:X69OanmZ(8/10) AAS
>>713
コンパイルオプションまで変えてしまって何をやっているかと言うこと
なんだよ。ライブラリの集め方だけの問題じゃないって事なんだ。

ライブラリの動作が変わってしまい、MONOLITHIC が 0 と 1とで結果が違うことに
悩まされる可能性もある。

単にライブラリのオブジェクトの集め方(含み方)の問題では無いとすると、MONOLITHIC
オプションの意味はいったい何かと言う問題になる。
省4
715: 2014/09/01(月)16:33 ID:X69OanmZ(9/10) AAS
外部リンク:wiki.wxwidgets.org

「MONOLITHIC=1 :
 Packages all libraries in a single file.
 (Note: do not combine this option with a static build.)」

とあった。static build の時は、MONOLITHIC=1 にするな、と
書かれている・・・。
718: 2014/09/01(月)17:31 ID:X69OanmZ(10/10) AAS
>>717
そういうわけではない。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s