C ++ / Qt - проблема компиляции: синтаксическая ошибка: отсутствует ';' перед идентификатором - без понятия - PullRequest
2 голосов
/ 04 июля 2011

У меня очень простой следующий код:

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, но меня это сбивает с толку!

Заранее спасибо!

1 Ответ

10 голосов
/ 04 июля 2011

У вас есть круговые зависимости от ваших заголовков. Удалите #include "StartWindow.h" из вашего MainWindow.h файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...