您的位置:首页
今天重新编译了一下 wxWidgets
2011-10-03 20:38
134 查看
以前编译的一份太慢.可能还有些问题.
于是这次重新编译.想使用静态的方式.
结果在链接wxmsw28u_gcc_custom.dll (MONOLITHIC=1) 时内存耗尽.
因为系统是32位的,最大只能为应用程序分配2G的内存.
后经高人指点,在编译时加入 -fno-keep-inline-dllexport 参数(内联符号不导出),这样DLL文件也小了,链接时占用内存也小了.
终于成功了.
编译前先修改几个必改的参数:
build\msw\config.gcc
编译器这次使用 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
于是这次重新编译.想使用静态的方式.
结果在链接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
相关文章推荐
- 升级内核版本后,需要重新编译一下网卡驱动
- 今天学会了怎么来用ildasm破解和用ilasm来重新编译
- 【原】SQL存储过程调用慢,但是重新编译一下存储过程就很快
- oracle三大分区(好久没碰数据库拉,今天突然有人问然后就重新学习了一下嘿嘿嘿嘿)
- 尘封了四年的技术博客,今天重新开启,记录一下。回归本质,科学技术仍然是第一生产力
- qt4 designer今天有重新复习了一下~
- 【原】SQL存储过程调用慢,但是重新编译一下存储过程就很快
- 早就看到 www.csblogs.com 博客园展示的代码非常优秀,今天申请一个 纪念一下先.
- 需要重新整理一下了
- 将session存入数据库的方法(摘自“漂泊雪狼”--在asp.net程序开发中避免编译就要重新登录系统的小技巧 )
- 今天有空将最近用到的plist的用法总结一下,借鉴了一下前辈们的经验
- 今天杭州华为面试,纪念一下
- vim 重新编译,支持lua (compile vim with lua)
- eclipse重新编译源代码(二)
- git 推送之前,一定要编译一下源代码,
- VS2008每次build都重新编译问题
- 整理一下今天的收获(getSharePreferences的使用,解决在非onCreate方法中无法使用的情况)
- Openwrt 免重新编译设置初始默认ESSID和配置
- OpenvSwitch自动化重新编译和安装