今天重新编译了一下 wxWidgets

以前编译的一份太慢.可能还有些问题.
于是这次重新编译.想使用静态的方式.
结果在链接wxmsw28u_gcc_custom.dll (MONOLITHIC=1) 时内存耗尽.
因为系统是32位的,最大只能为应用程序分配2G的内存.

后经高人指点,在编译时加入 -fno-keep-inline-dllexport 参数(内联符号不导出),这样DLL文件也小了,链接时占用内存也小了.
终于成功了.

编译前先修改几个必改的参数:
build\msw\config.gcc

UNICODE ?= 1 //UNICODE肯定是需要的
CPPFLAGS ?= -Os -fno-keep-inline-dllexport
LDFLAGS ?= -s
RUNTIME_LIBS ?= static


编译器这次使用 tdm-gcc-4.6.1

动态发生版(单DLL文件) (CB需要的)
time(mingw32-make -j2 -f makefile.gcc SHARED=1 BUILD=release MONOLITHIC=1 )
real    20m15.843s

动态调试版(单DLL文件)
time(mingw32-make -j2 -f makefile.gcc SHARED=1 BUILD=debug MONOLITHIC=1 )
real    32m1.234s

静态发生版
time(mingw32-make -j2 -f makefile.gcc SHARED=0 BUILD=release MONOLITHIC=1 )
real    7m29.281s

posted on 2011-10-03 20:38  aozima  阅读(4295)  评论(0编辑  收藏  举报

导航