如果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重新编辑 ]