qt + TDM mingw + eclipse 编译一直出错。。何解?

tomkai 2009-12-22 10:51:39
以下是控制台显示的LOG

=======================================


mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/WorkSpace/helltQt'
c:\Qt\4.6.0\bin\uic.exe helltqt.ui -o ui_helltqt.h
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.6.0\include\QtCore" -I"c:\Qt\4.6.0\include\QtGui" -I"c:\Qt\4.6.0\include" -I"c:\Qt\4.6.0\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.6.0\mkspecs\default" -o debug\main.o main.cpp
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.6.0\include\QtCore" -I"c:\Qt\4.6.0\include\QtGui" -I"c:\Qt\4.6.0\include" -I"c:\Qt\4.6.0\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.6.0\mkspecs\default" -o debug\helltqt.o helltqt.cpp
C:\Qt\4.6.0\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.6.0\include\QtCore" -I"c:\Qt\4.6.0\include\QtGui" -I"c:\Qt\4.6.0\include" -I"c:\Qt\4.6.0\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.6.0\mkspecs\default" -D__GNUC__ -DWIN32 helltqt.h -o debug\moc_helltqt.cpp
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\4.6.0\include\QtCore" -I"c:\Qt\4.6.0\include\QtGui" -I"c:\Qt\4.6.0\include" -I"c:\Qt\4.6.0\include\ActiveQt" -I"debug" -I"." -I"c:\Qt\4.6.0\mkspecs\default" -o debug\moc_helltqt.o debug\moc_helltqt.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\helltQt.exe debug/main.o debug/helltqt.o debug/moc_helltqt.o -L"c:\Qt\4.6.0\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
c:\Qt\4.6.0\lib/libqtmaind.a(qtmain_win.o): In function `WinMain@16':
C:\iwmake\build_mingw_opensource\src\winmain/qtmain_win.cpp:93: undefined reference to `_Unwind_Resume'
C:\iwmake\build_mingw_opensource\src\winmain/qtmain_win.cpp:135: undefined reference to `_Unwind_Resume'
c:\Qt\4.6.0\lib/libqtmaind.a(qtmain_win.o):C:\iwmake\build_mingw_opensource\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:481: undefined reference to `_Unwind_Resume'
mingw32-make[1]: Leaving directory `D:/WorkSpace/helltQt'
c:\Qt\4.6.0\lib/libqtmaind.a(qtmain_win.o):C:\iwmake\build_mingw_opensource\src\winmain/../../include/QtCore/../../src/corelib/tools/qvector.h:482: undefined reference to `_Unwind_Resume'
c:\Qt\4.6.0\lib/libqtmaind.a(qtmain_win.o):qtmain_win.cpp:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\helltQt.exe] Error 1
mingw32-make: *** [debug] Error 2
...全文
1561 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhwzju 2010-06-19
  • 打赏
  • 举报
回复
使用 nuwen打包的 mingw
http://nuwen.net/mingw.html

如果一定要用 tdm打包的mingw, 请仔细阅读tdm主页上关于 异常处理的说明
手动下载 DW2方式的发行包
zhwzju 2010-06-19
  • 打赏
  • 举报
回复
11楼 javasui的解答是 完全正确的!!
JAVASUI 2010-02-03
  • 打赏
  • 举报
回复
1.查看一下你的gcc配置选项:gcc -v

2.如果输出中有--enable-sjlj-exceptions选项,那么就会出上面的问题。

3.我使用的是gcc-4.4.3版本(自已编译的),如果在编译gcc时加上选项--enable-sjlj-exceptions就会出现上面的错误的,gcc-4.4.2版本我也用过同样会出现上面的问题。

解决方法:
第一种方式:使用官方的完整的qt发布包安装应该不会有问题,毕竟许多人在使用,如果有问题官方早就解决了。
第二种方式:自已编译一个gcc编译器
1.下载地址:ftp://ftp.gnu.org/gnu/
自已找一个想要的版本(建议下载那个完整的gcc-4.4.3.tar.gz 也就是那个最大的它包含c, c++, java, ada, 等)
2.使用你当前的mingw中的gcc进行编译.(建议下载MSYS前端进行编译, mingw官方下载网站,MSYS是Mingw前端管理软件,使用起来很方便)
3.注意编译自已的gcc主要问题是根据用途如何进行配置。
4.如果你不想使用Qt官方中的mingw, 想使用自已编译最新的gcc编译器的话,但是你又不知道如何进行配置gcc选项,你使用Qt官方中的mingw,在它的命行中输入gcc -v,这是什么意思该明白了吧,我使用最新的gcc来编译qt程序遇到 libqtmaind.a(qtmain_win.o):qtmain_win.cpp:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' 问题不知道该怎么办时想到了此方法. 按照命令行输出进行配置。
我的配置如下:(注意 --disable-sjlj-exceptions )
../../src/gcc-4.4.3/configure --prefix=/mingw --enable-languages=c,c++,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --with-dwarf2 --disable-win32-registry --enable-threads=win32 --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-libgomp --build=mingw32 --with-pkgversion='MinGW32 GCC 4.4.3'

make
make install

注意想要使用mingw来编译gcc需要安装gmp, mpfr等库,这些都是最基本的,稍微知道如何编译gcc的人都应知道,不会自已去找资料,其实编译gcc非常简单,并不像网上那些人说的那么复杂,因为我编译过gcc有几十回了。

如果还有不明白的发email: sui19992000@yahoo.com.cn
xiaosolovepig 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tingsking18 的回复:]
-stdc++
[/Quote]..
xiaosolovepig 2010-01-15
  • 打赏
  • 举报
回复
..
xiaosolovepig 2010-01-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dyw 的回复:]
我也碰到这个问题,现已解决。下面的做法供参考:
1、给系统环境变量PATH添加下面的路径(我的Qt4.6安装在C盘):
C:\Qt\2009.05\qt\bin;C:\Qt\2009.05\mingw\bin;
2、在DOS环境下执行
qmake
mingw32-make
若编译成功则基本没有问题了。若有问题,则新建一个test项目再试。
3、然后在Eclipse环境下Clean&build,应该也能成功编译。

[/Quote]....
tingsking18 2010-01-15
  • 打赏
  • 举报
回复
-stdc++
Disen-构架师 2010-01-15
  • 打赏
  • 举报
回复
好了,我又重新安装了一下mingw
可能我安装vs2005插件造成的
Disen-构架师 2010-01-15
  • 打赏
  • 举报
回复
我的出现了:
mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/qtworkspace/aa'
mingw32-make[1]: Leaving directory `D:/qtworkspace/aa'
Makefile.Debug:61: *** missing separator. Stop.
mingw32-make: *** [debug] Error 2


我查了一下环境变量,好着呢,又重新装了一下Qt,可还是不行,高手指点一下
beijingtianbai 2010-01-03
  • 打赏
  • 举报
回复
mingw32
dext 2010-01-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 tomkai 的回复:]
undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
[/Quote]

这些表明,你没有添加 指定的 库文件。
换句话说,你只添加了 .h 没有添加 .o /.so/.lib ...之类的。

可能 你的TDM Mingw 安装的时候 PATH 没有设置。
设置一下 就好了。
dyw 2010-01-01
  • 打赏
  • 举报
回复
我也碰到这个问题,现已解决。下面的做法供参考:
1、给系统环境变量PATH添加下面的路径(我的Qt4.6安装在C盘):
C:\Qt\2009.05\qt\bin;C:\Qt\2009.05\mingw\bin;
2、在DOS环境下执行
qmake
mingw32-make
若编译成功则基本没有问题了。若有问题,则新建一个test项目再试。
3、然后在Eclipse环境下Clean&build,应该也能成功编译。
tomkai 2009-12-23
  • 打赏
  • 举报
回复
难道没有人知道吗。。还是我问的问题太弱 >.<

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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