mingw 下编译QT 无法生存moc文件

lucasli 发布于 2013/01/15 02:20
阅读 2K+
收藏 0

mingw的gcc version: 4.7.2 ,QT版本4.6.3

编译步骤:

1、进入mingw

2、在QT目录下运行: ./configure.exe -fast -release -shared -no-exceptions -no-rtti -no-stl -no-qt3support -no-opengl -no-multimedia -no-webkit -no-script -no-s60 -no-scripttools  -no-gif -no-phonon -nomake examples -nomake demos -nomake docs -nomake translations -platform win32-g++ -arch windows -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista

3、configure 成功后,直接运行mingw32-make开始编译

4、编译出错: 
D:/develop_tools/qt-4.6.3/bin/moc.exe -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_MAKEDLL -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -D_USE_MATH_DEFINES -DHB_EXPORT=Q_CORE_EXPORT -DQT_DLL -DQT_NO_DEBUG -DQT_NO_DYNAMIC_CAST -I'../../include' -I'../../include/QtCore' -I'tmp/rcc/release_shared' -I'tmp' -I'global' -I'../3rdparty/zlib' -I'../3rdparty/harfbuzz/src' -I'../3rdparty/md5' -I'../3rdparty/md4' -I'../../include/ActiveQt' -I'tmp/moc/release_shared' -I'../../mkspecs/win32-g++' -D__GNUC__ -DWIN32 animation/qabstractanimation.h -o tmp/moc/release_shared/moc_qabstractanimation.cpp
g++ -c -include tmp/obj/release_shared/qt_pch.h -O2 -Wall -fno-exceptions -fno-rtti -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_MAKEDLL -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -D_USE_MATH_DEFINES -DHB_EXPORT=Q_CORE_EXPORT -DQT_DLL -DQT_NO_DEBUG -DQT_NO_DYNAMIC_CAST -I'../../include' -I'../../include/QtCore' -I'tmp/rcc/release_shared' -I'tmp' -I'global' -I'../3rdparty/zlib' -I'../3rdparty/harfbuzz/src' -I'../3rdparty/md5' -I'../3rdparty/md4' -I'../../include/ActiveQt' -I'tmp/moc/release_shared' -I'../../mkspecs/win32-g++' -o tmp/obj/release_shared/qabstractanimation.o animation/qabstractanimation.cpp
animation/qabstractanimation.cpp:858:38: fatal error: moc_qabstractanimation.cpp: No such file or directory
compilation terminated.
Makefile.Release:6037: recipe for target 'tmp/obj/release_shared/qabstractanimation.o' failed
mingw32-make[2]: *** [tmp/obj/release_shared/qabstractanimation.o] Error 1
mingw32-make[2]: Leaving directory 'd:/develop_tools/qt-4.6.3/src/corelib'
Makefile:34: recipe for target 'release' failed
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory 'd:/develop_tools/qt-4.6.3/src/corelib'
makefile:234: recipe for target 'sub-corelib-make_default-ordered' failed
mingw32-make: *** [sub-corelib-make_default-ordered] Error 2


错误主要原因是moc没有生成 moc_qabstractanimation.cpp文件
查看:corelib\tmp\moc\release_shared目录下没有任何文件。

请教高手能否帮我解决这个问题,我在网上查了一些资料还是得不到答案。已经花费2天时间了。

加载中
0
红尘一人
红尘一人
貌似自己编译Qt要安装perl的 我只用MS编译过 刚开始也报错了 后来装上就好了
0
lucasli
lucasli

引用来自“红尘一人”的答案

貌似自己编译Qt要安装perl的 我只用MS编译过 刚开始也报错了 后来装上就好了
可能我以前下载的QT4.6.3版本有问题,编译出来的moc程序运行起来没有任何提示就直接退出,用gdb跟踪也不行。 昨晚重新下载了一个qt-4.8.1-mingw版本,目前正在顺利编译中。。。
0
红尘一人
红尘一人
人家都编译好了 自己编译 吃多了吧
0
lucasli
lucasli

引用来自“红尘一人”的答案

人家都编译好了 自己编译 吃多了吧
GCC版本不同嘛,我的是4.7.2,别人提供的不是啊。
返回顶部
顶部