我正在尝试编译http://doc.trolltech.com/4.4/mainwindows-application.html上的基本教程程序并遇到问题.
按照教程程序的方式执行操作会产生编译错误:
In file included from debug\moc_mainwindow.cpp:10:
debug\../mainwindow.h:2: error: expected class-name before '{' token
debug\../mainwindow.h:5: error: ISO C++ forbids declaration of `Q_OBJECT' with no type
Run Code Online (Sandbox Code Playgroud)
问题是需要
#include <QtGui>
Run Code Online (Sandbox Code Playgroud)
教程程序将它放在mainwindow.cpp中,这是理想的方法,但它不会被复制到moc文件中.
如果我将它放入mainwindow.h中,一切正常,但在每个头文件中执行此操作都是不优雅的,并且一旦程序变大就会延长编译时间.
自教程编写以来,这是否发生了变化?(我正在使用最新的Qt 4.5.3,Windows SDK安装,从命令行编译.)我错过了什么,或者是否有任何已知的修复此问题?
包括#include <QMainWindow>在标题中应该足够了.无论如何,这是必要的,因为QMainWindow是声明的类的基类mainwindow.h
即使在cpp文件中(当然除了简单的示例/测试程序之外),使用所有和厨房接收器头文件也不是一个好主意,因为它们会不必要地减慢编译速度.
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |