• 5564阅读
  • 2回复

关于标准C++... [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-25
为什么标准的C++代码,

在Dev-C++生成的exe文件,可直接运行...

而在qt下生成的exe文件,需要带上libgcc_s_dw2-1.dll  ?  有时候甚至要带上mingwm10.dll   ....



该如何解释?
离线iiiyyyhhhsss

只看该作者 1楼 发表于: 2010-04-25
???
离线paranoid
只看该作者 2楼 发表于: 2010-04-25
使用gcc3.4.5编译出来的qt库,依赖mingwm10.dll
使用gcc4.4.0编译出来的qt库,默认依赖libgcc_s_dw2-1.dll,因为这是gcc4.4.0的默认选项:
Dynamic linking with libgcc_s_dw2-1.dll is necessary to throw
exceptions between different modules, such as between two DLLs or a
DLL and an EXE.  Consequently, it is the default for all languages
other than C.  To disable this dynamic linking, use -static-libgcc.
To enable this dynamic linking in C, use -shared-libgcc.
去掉依赖的话可以在编译qt库之前修改QTDIR\mkspec\win32-g++\qmake.conf,QMAKE_LFLAGS = -static-libgcc (增加这个选项)...
或者configure之后修改QTDIR\.qmake.cache,QMAKE_LFLAGS += -static-libgcc
这样编译出来的qt库就不再依赖libgcc_s_dw2-1.dll了。
快速回复
限100 字节
 
上一个 下一个