2.9.1怎么这么巨大
2.9.1怎么这么巨大
用GCC4.5.1静态编译2.9.1
196,030 libwxexpat.a
345,704 libwxexpatd.a
144,366 libwxjpeg.a
831,390 libwxjpegd.a
39,287,644 libwxmsw29u.a
204,313,824 libwxmsw29ud.a
881,842 libwxmsw29ud_gl.a
208,452 libwxmsw29u_gl.a
164,978 libwxpng.a
536,164 libwxpngd.a
80,420 libwxregexu.a
168,058 libwxregexud.a
1,412,970 libwxscintilla.a
4,531,200 libwxscintillad.a
381,994 libwxtiff.a
895,998 libwxtiffd.a
70,942 libwxzlib.a
170,392 libwxzlibd.a
疯了,debug版204M,release版39M
我编译2.8.1,才几十M,怎么回事??
196,030 libwxexpat.a
345,704 libwxexpatd.a
144,366 libwxjpeg.a
831,390 libwxjpegd.a
39,287,644 libwxmsw29u.a
204,313,824 libwxmsw29ud.a
881,842 libwxmsw29ud_gl.a
208,452 libwxmsw29u_gl.a
164,978 libwxpng.a
536,164 libwxpngd.a
80,420 libwxregexu.a
168,058 libwxregexud.a
1,412,970 libwxscintilla.a
4,531,200 libwxscintillad.a
381,994 libwxtiff.a
895,998 libwxtiffd.a
70,942 libwxzlib.a
170,392 libwxzlibd.a
疯了,debug版204M,release版39M
我编译2.8.1,才几十M,怎么回事??
Re: 2.9.1怎么这么巨大
你用vs編一下,好像沒那麼大。liuyug wrote:用GCC4.5.1静态编译2.9.1
196,030 libwxexpat.a
345,704 libwxexpatd.a
144,366 libwxjpeg.a
831,390 libwxjpegd.a
39,287,644 libwxmsw29u.a
204,313,824 libwxmsw29ud.a
881,842 libwxmsw29ud_gl.a
208,452 libwxmsw29u_gl.a
164,978 libwxpng.a
536,164 libwxpngd.a
80,420 libwxregexu.a
168,058 libwxregexud.a
1,412,970 libwxscintilla.a
4,531,200 libwxscintillad.a
381,994 libwxtiff.a
895,998 libwxtiffd.a
70,942 libwxzlib.a
170,392 libwxzlibd.a
疯了,debug版204M,release版39M
我编译2.8.1,才几十M,怎么回事??
gcc正常的size是vc的1.5倍~2.0倍大。
不然就把一些元件config.gcc的一些元件去掉。
我用mingw4.4.4編wxmsw2.9.1,好像有錯誤。
我還是繼續用wxmsw2.8.11。
等待wxmsw2.8.12出來。呵呵
2.9x系列,要等3.0後才會穩定吧。
-
- Earned a small fee
- Posts: 12
- Joined: Thu Oct 14, 2010 12:20 pm
用这个配置编译吧,体积要小的多!
因为2.9.x默认在release版本中也使用debug信息。
因为2.9.x默认在release版本中也使用debug信息。
Code: Select all
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=1 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul
Life is not fair, get used to it.
-
- Earned a small fee
- Posts: 12
- Joined: Thu Oct 14, 2010 12:20 pm
Loaden你也同意用Os编译了?我以为你都是用O2编译Loaden wrote:用这个配置编译吧,体积要小的多!
因为2.9.x默认在release版本中也使用debug信息。
Code: Select all
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=1 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul
呵呵,我更关注体积了。xunxun1982 wrote:Loaden你也同意用Os编译了?我以为你都是用O2编译Loaden wrote:用这个配置编译吧,体积要小的多!
因为2.9.x默认在release版本中也使用debug信息。
Code: Select all
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=1 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul
最新编译2.9.2svn得到的大小,VC的debug版11.5MB,Release版7.69MB。
GCC的稍大2MB左右。
配置:
准备工作:
1. 删除include\wx\msw\setup.h(如果该文件已经存在)
2. 修改setup0.h,搜索“WXWIN_COMPATIBILITY_2_8”,修改其值为0,即放弃对wx2.8代码的兼容,强制用户更新代码。
GCC版本:
修改makefile.gcc文件:区分大小写搜索"_gcc"
mingw32-make -f makefile.gcc CPPFLAGS=-Os LDFLAGS=-s SHARED=1 BUILD=debug UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=1 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static
mingw32-make -f makefile.gcc CPPFLAGS=-Os LDFLAGS=-s SHARED=1 BUILD=release UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static
VC版本:
修改makefile.vc文件:区分大小写搜索"_vc"
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug SHARED=1 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=1 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=1 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static
VC静态版:
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static
Life is not fair, get used to it.
-
- Earned a small fee
- Posts: 12
- Joined: Thu Oct 14, 2010 12:20 pm
不需要重写,只要改写不兼容的代码就可以了。xunxun1982 wrote:我昨天也看到WXWIN_COMPATIBILITY_2_8了,他的默认值为1,如果改为0的话,是不是C::B的代码都要重写呢?
还有你那个gcc版本的配置有些问题,
BUILD=debug时,LDFLAGS不要加-s,否则会消除调试符号,造成调试困难。
还有个问题,你的RUNTIME_LIBS=static为什么设置为static呢,他默认好像就是dynamic。
LDFLAGS=-s的目的,是不想调试wx库本身,这并不影响你基于wx开发的程序的调试。
你只是无法进入wx的源码罢了。
RUNTIME_LIBS=static的话,编译后,就不会依赖msvc*.dll.
如果是GCC编译器的话,就无所谓了。
但VC编译器,使用static的话,省了MSVC动态CRT库的依赖。
Life is not fair, get used to it.