我有以下非常简单的代码:
main.cpp
#include "ui_library_browser.h"
#include <QtGui/QApplication>
#include "StartWindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
StartWindow w;
w.show();
return a.exec();
}
StartWindow.h
#ifndef STARTWINDOW_H_
#define STARTWINDOW_H_
#include <qwidget>
#include "MainWindow.h"
class StartWindow : public QWidget
{
Q_OBJECT
public:
StartWindow();
~StartWindow();
MainWindow main_window; //<-- Problem
};
#endif
MainWindow.h
#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_
#include <qdialog.h>
#include "StartWindow.h"
class MainWindow : public QDialog
{
Q_OBJECT
public:
MainWindow();
~MainWindow();
};
#endif
我收到以下错误:
moc_MainWindow.cpp
StartWindow.h(14):错误C2146:语法错误:缺少';'在标识符'main_window'之前 StartWindow.h(14):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int StartWindow.h(14):错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
之前我写过一些C ++ / Qt应用程序,但我对此感到很满意!
提前致谢!
答案 0 :(得分:10)
您的标头上存在循环依赖关系。从#include "StartWindow.h"
文件中删除MainWindow.h
。