CodeBlocks有关组件问题?

laojiusyh 2010-11-17 04:18:15
在codeblocks中可以编译成功并且可以运行,但是在debug情况下生成.exe文件不可以运行,提示缺少wxmsw28ud_gcc.dll这个组件,当我把这个组件放在与.exe文件同一个文件夹时又可以运行, 这个组件有90M,本来程序就很小,这样肯定不行,不知道这个问题怎么解决? 还有在release中生成的.exe文件也是出现这种情况,提示缺少wxmsw28u_gcc.dll这个组件,请各位老鸟,大虾门帮忙怎么解决?

开发环境是windowsxp+codeblocks+wxWidgets2.8
...全文
342 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SweetBo 2013-03-19
  • 打赏
  • 举报
回复
请问怎么个静态链接法
laojiusyh 2010-11-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xunxun1982 的回复:]
你想怎么解决,dll就是这样的啊,C::B里能直接运行,是因为直接把dll所在目录归到了搜索目录,在C::B外不能运行,是因为dll目录不在系统path中,你可以把缺少的dll复制到 path目录,比如c:\windows\system之类。

如果你不想依赖dll,那么就采用静态链接形式,代价是exe体积增大。
[/Quote]

牛人啊,一点就破 呵呵 谢谢!这个问题困扰我很长时间。问题解决了,撒分了!你功不可没!
xunxun 2010-11-26
  • 打赏
  • 举报
回复
你想怎么解决,dll就是这样的啊,C::B里能直接运行,是因为直接把dll所在目录归到了搜索目录,在C::B外不能运行,是因为dll目录不在系统path中,你可以把缺少的dll复制到 path目录,比如c:\windows\system之类。

如果你不想依赖dll,那么就采用静态链接形式,代价是exe体积增大。
laojiusyh 2010-11-26
  • 打赏
  • 举报
回复
这个问题怎么还没人能给出个很好的解决办法呢? 自己帮自己顶一次。
laojiusyh 2010-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 loaden 的回复:]
因为这个DLL里有所有的debug信息,以及一些没用的东西,便于调试的。
很正常。发布时用release版本的DLL即可。

用我的方法,可以把DLL减小到6MB左右。
其实编译wx非常简单的。
[/Quote]

老邓,到时候运行的时候非得把那个dll拷进去吗,请问有别的办法能解决这个问题么?在开发工具里居然能运行,我就纳闷了,但是点那个.exe可执行文件就不行? 他不能自动链接么? 那个可执行文件又不是在别的机器上运行?
老邓 2010-11-17
  • 打赏
  • 举报
回复
因为这个DLL里有所有的debug信息,以及一些没用的东西,便于调试的。
很正常。发布时用release版本的DLL即可。

用我的方法,可以把DLL减小到6MB左右。
其实编译wx非常简单的。
laojiusyh 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 laojiusyh 的回复:]
在codeblocks中可以编译成功并且可以运行,但是在debug情况下生成.exe文件不可以运行,提示缺少wxmsw28ud_gcc.dll这个组件,当我把这个组件放在与.exe文件同一个文件夹时又可以运行, 这个组件有90M,本来程序就很小,这样肯定不行,不知道这个问题怎么解决? 还有在release中生成的.exe文件也是出现这种情况,提示缺少wxmsw28u_gcc.dll这个组件,请各位……
[/Quote]

wxWidgets2.8 我是用那个下载wxpack直接安装的,没有搞那个下源代码自编译,那个release版本的那个组件wxmsw28u_gcc.dll 只有10M多点 我想问的只是这个问题,并不是重新去编译而去回避这个问题,不过还是得感谢你提供的方法。
老邓 2010-11-17
  • 打赏
  • 举报
回复
这个是你自己编译的吧。你用MinGW自带的strip给它减肥看看。
另外,即使有调试信息,也不应该这么大的。
我这里用-Os编译,只有6MB左右。
这是我编译的参数,供参考:
--------------------------
2.8.x
--------------------------

VC版本:
修改 makefile.vc 文件:区分大小写搜索"_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=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

GCC版本:
修改makefile.gcc文件:区分大小写搜索"_gcc",替换成""
mingw32-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 >nul
mingw32-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 >nul

VC版本:
修改 makefile.vc 文件:区分大小写搜索"_vc",替换成""
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release SHARED=0 UNICODE=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 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul

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 >nul
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 >nul


--------------------------
2.9.x
--------------------------

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 >nul
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 >nul

VC版本:
修改makefile.vc文件:区分大小写搜索"_vc"
nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug 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=release SHARED=0 UNICODE=1 DEBUG_INFO=0 DEBUG_FLAG=0 MONOLITHIC=1 OFFICIAL_BUILD=1 RUNTIME_LIBS=static >nul

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧