qt编译时一个怪异的问题

starzhestarzhe 2009-11-27 09:28:09
最近开始接触QT,在windows下装了sdk,用了几天,自带的编译器出现问题,出现死循环,于是用windows编译器(nmake);
直接qmake -project; qmake;nmake;出现生成moc问题,于是在nmake之前写个bat,先生成moc_*.cpp;编译成功

但是现在又有问题,工程目录./*.pro;工程头文件和源文件./src/*.h,*.cpp;
这样即使开始运行了bat,生成moc,但是在nmake的时候还是报错,找不到moc_*.cpp,明明已经存在,我把出错的代码段复制运行,却可以:
g++ -c -O2 -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\2009.04\qt\include\QtCore" -I"c:\Qt\2009.04\qt\include\QtNetwork" -I"c:\Qt\2009.04\qt\include\QtGui" -I"c:\Qt\2009.04\qt\include" -I"c:\Qt\2009.04\qt\include\ActiveQt" -I"build" -I"build" -I"c:\Qt\2009.04\qt\mkspecs\default" -o build\moc_mainwindow.o build\moc_mainwindow.cpp

蛮怪异的,不知道哪位高手可以指点一下.
本人太菜了.

QT Creator也有很多问题,有时候启动就出错,唉!!!!!!
真希望这个IDE能快点改善
...全文
511 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutailiang2 2010-04-02
  • 打赏
  • 举报
回复
是不是QT中version配置的不对?
fuzhuo233 2010-03-22
  • 打赏
  • 举报
回复
试试先make clean
再qmake make nmake
tingsking18 2010-03-18
  • 打赏
  • 举报
回复
同意楼上的。
看看你的moc文件生成的路径在Makefile中是否通过-I选项,来让编译器识别?
lewisjill 2010-03-18
  • 打赏
  • 举报
回复
应该是元文件生成的路径与你引用的路径不匹配。检查一下你的环境变量,应该就OK了。
qter_wd007 2010-03-13
  • 打赏
  • 举报
回复
有时候需要手工修改.pro文件
两缕阳光 2010-03-13
  • 打赏
  • 举报
回复
这个是QT的元编译器生成的文件,你要确保logindlg.h在.pro工程文件中的HEADERS的列表中,只有在HEADERS列表中的头文件并且头文件的类中有Q_OBJET宏时才会生成相应的moc_*.cpp
Jerry_Lee01 2010-03-12
  • 打赏
  • 举报
回复
用的是4.6.2版本吗》?
stone421 2010-03-08
  • 打赏
  • 举报
回复
楼主的第一个问题我也遇到了,不知道楼主现在找到问题的根本没有,我看了一下他的编译命令其中有一个是这样的
C:/Qt/2010.02.1/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL
-DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\2010.0
2.1\qt\include\QtCore" -I"c:\Qt\2010.02.1\qt\include\QtGui" -I"c:\Qt\2010.02.1\q
t\include" -I"." -I"c:\Qt\2010.02.1\qt\include\ActiveQt" -I"debug" -I"c:\Qt\2010
.02.1\qt\mkspecs\default" -D__GNUC__ -DWIN32 logindlg.h -o debug\moc_logindlg.cp
p
也就是说他应该在 debug文件夹下生成moc_logindlg.cpp文件 但他并没有生成 不知道为什么,我单独运行了这个命令,结果他就一直运行没有什么返回,谁能帮忙解决吗,我把程序用qt creator编译就可以通过。
wxdcxp 2009-12-06
  • 打赏
  • 举报
回复
windows格式和linux下的格式是不一样的
就像有的
c程序在windwos 下可以编译通过但在linux下就不一定能编译通过
liujianbo017 2009-12-06
  • 打赏
  • 举报
回复
你们都用的那个版本啊a!
dext 2009-11-27
  • 打赏
  • 举报
回复
楼主 首先要保证 C++ 文件 一切 安好。 如果 C++ 的源代码 结构 有问题,那Qmake 也无能为力。
lugaideath1 2009-11-27
  • 打赏
  • 举报
回复
我用了qt creator很久,写了很多东西了,windows的还没发现什么错误,反而linux的比较不稳定!
starzhestarzhe 2009-11-27
  • 打赏
  • 举报
回复
都在windows下呢,我只是把mingw32-make.exe,改成了make.exe而已
要是能make成功我还另外找个编译器干什么?说了在我自己那台电脑上make是个死循环。
在这之前先qmake -project,再qmake,然后看makefile.debug里的moc_*.cpp,写个bat先生成moc_*.cpp到指定目录下,最后nmake,从来没出过问题啊
这次只是把源码放到了src下....所以说怪异
dext 2009-11-27
  • 打赏
  • 举报
回复
Windows 和 linux 的 makefile 是不一样的。 就算是 同是 Windows 也不一定保证一样。

所以 建议是 只保留 .pro,然后 qmake make.
starzhestarzhe 2009-11-27
  • 打赏
  • 举报
回复
在qt creator里编译通过,但是我自己的电脑上qt creator里make时是个死循环,这个问题一直没解决。
starzhestarzhe 2009-11-27
  • 打赏
  • 举报
回复
C++文件本来一切就安好啊

16,216

社区成员

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

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