ich arbeite an einer Qt-GUI für ein Kommandozeilenprogramm, das in C erstellt wurde und eine Menge an .c-Files und .h-Files enthält. Das Kommandozeilenprogramm funktioniert einwandfrei.
In meinem Qt-Teil benötige ich einige h-Files aus der C-Version, die ich per
Code: Alles auswählen
extern "C" {
#include "file1.h"
#include "file2.h"
...
}Einige dieser h-Files konnte ich problemlos so einbinden, und das Qt-Programm funktioniert damit. Jetzt aber kommt das Problem, das ich in einem Beispiel darstelle:
Code: Alles auswählen
Module aus der Kommandozeilen-Version:
Inhalt von file5.h:
...
#define SYSTEM_A_DIM 3
...
Inhalt von file6.h:
...
ERR function_1(double p_a[SYSTEM_A_DIM], ...); //function prototype
...
Inhalt von file6.c:
#include "file5.h"
...
ERR function_1(double p_a[SYSTEM_A_DIM], ...) {
... // diverse statements
}
Sobald ich nun in meinem Qt-Modul file6.h includiere,
Code: Alles auswählen
extern "C" {
#include "file1.h"
#include "file2.h"
...
#include "file6.h"
...
}Nun könnte ich natürlich einfach in file6.h ein #include "file5.h" einfügen. Aber ich möchte einerseits die Files der C-Version möglichst nicht ändern und andererseits vor einer evtl. Änderung verstehen, was hier falsch läuft. Wenn es gar nicht anders als mit dem zusätzlichen #include ... geht, dann muss es eben sein, aber vorher hätte ich gerne fachkundigen Rat, warum dies so nicht funktioniert.
Danke schon mal