Meine Anwendung besteht aus einem Hauptfenster, das mit QtDesigner4 erstellt wurde, und den Dateien ipcsimu.h sowie ipcsimu.cpp (weitere Dateien spielen hier keine Rolle).
Der Inhalt in verkuerzter Form (relevante Zeilennr. eingefuegt):
ipcsimu.h:
Code: Alles auswählen
...
#include "ui_ipcsimu.h"
...
class ipcSimuDesign : public QMainWindow, private Ui::ipcSimu_Qt4
{
Q_OBJECT
... diverse Definitionen
private:
...
35: QFile swkonfigDatei, refmodDatei;
// diese Dateivariablen werden später in ipcsimu.cpp gebraucht
};
ipcsimu.h:35: error: 'QFile' does not name a type
make: *** [ipcsimu_main.o] Fehler 1
Ich kann mit der Fehlermeldung nichts anfangen. Was bedeutet es, dass er einen Typ nicht benennen kann? In Beispielen in meinem Qt-Buch gibt es genau solche Definitionen zu Hauf.
Falls es interessiert, wie die in Zeile 35 definierten Dateivariablen verwendet werden, hier die ipcsimu.cpp (woanders kommen sie nicht vor):
Code: Alles auswählen
#include <QtGui>
#include <iostream>
#include <QFile>
#include "ipcsimu.h"
... u.a. constructor, der einen Slot 'steuerAblauf()' definiert
void ipcSimuDesign::steuerAblauf(int buttNr) {
...
// Dateien initialisieren, d.h. aus oberste Einträge aus den ComboBoxen:
QString fileMiss="fehlende Dateien:";
swkonfigDatei.setFileName(comboBox_swkonfig->currentText());
if (!swkonfigDatei.open(QIODevice::ReadOnly)) fileMiss += " SW-Konfig,";
refmodDatei.setFileName(comboBox_refmod->currentText());
if (!refmodDatei.open(QIODevice::ReadOnly)) fileMiss += " Refmod,";
...
if (fileMiss.length()>18) {
if (fileMiss.endsWith(",")) fileMiss=fileMiss.remove(fileMiss.length(),1);
QMessageBox::warning(this, tr("IPC-Simulation"), fileMiss, QMessageBox::Ok);
}
...
}
Das muss dann ein Folgefehler aus der Zeile 35 von ipcsimu.h gewesen sein.
Mittlerweilen meldet der Compiler aber nur noch für ipcsimu.h, Zeile 35, einen Fehler, ohne dass ich wüsste, auf welche Änderung hin die weiteren Fehlermeldungen verschwunden sein könnten - ich arbeite unter Suse Linux10.1 mit Eclipse und CDT.
Liegt der Fehler wirklich in der Zeile, wo der Fehler gemeldet wird, oder kann er von woanders herkommen? aber woher?