• 5878阅读
  • 2回复

编译后出现的问题 [复制链接]

上一主题 下一主题
离线菠萝
 
只看楼主 倒序阅读 楼主  发表于: 2006-05-15
我编译*.cpp文件,在编译到moc_*.cpp时,出现了错误,然后此目录里的*.cpp的文件内容了。 天啊,我一天的劳动成果不见了。
我不知道各位有没有出现这种情况。 现在moc_*.cpp文件还在,现在唯一的希望是 有没有什么方法可以让moc_*.cpp转化成*.cpp文件。

求救!!!
蓬山此去无多路,青鸟殷勤为探看。
离线myer

只看该作者 1楼 发表于: 2006-05-15
奇怪的问题
不过moc_*.cpp转化成*.cpp文件是不大可能的。moc_*.cpp是由头文件uic得来的。
http://user.qzone.qq.com/56430808
离线sinl

只看该作者 2楼 发表于: 2006-05-16
如果Makefile文件不是你手工写的话,应该不会有这种情况,如果是你手工写的,那你要检查一下你的Makefile文件写的对不对

一般能生成moc_*.cpp那么编译moc_*.cpp文件应该不会出现问题,而出错的原因可能是你用的QT的PATH路径和你实际使用的QT头文件路径不一致,这种情况最可能的就是你希望使用你自己编译的QT库,而系统里面已经自带了另一个版本的QT环境,而你没有修改环境变量造成的,编译的时候可能默认使用了系统自带的QT资源。

moc_*.cpp不是由UIC生成的,应该是元对象编译器MOC生成的,UIC是将*.ui文件转换成*.h和*.cpp文件(QT4里面只转换成*.h文件了),因为普通的QT编写的.cpp文件含有QT的扩展宏和关键字,标准C++编译器无法理解,需要先由MOC预编译成moc_*.cpp(它是标准的c++文件),这样标准c++编译器就能编译了,这就是为什么QT编译的时候很慢,它有两次编译过程。
[ 此贴被sinl在2006-05-16 14:12重新编辑 ]
快速回复
限100 字节
 
上一个 下一个