Potrierung Win -> Unix
-
Hallo,
ich muss ein umfangreiches Projekt von Windows auf Unix portieren und stosse auf folgendes Problem:Ich habe zwei *.c Files:
File_A.c: void globaleFunktion( ); File_B.c class Debug { void wichtigeMethode( ) { // Rufe globale Funktion auf. ::globaleFunktion( ) } }
In einem dritten File steht folgendes:
File_C.c #include "File_B.h" #include "File_A.h" class DebugTest { Debug m_debug; }
Der Knackpunkt ist, das erst File B und DANACH File A includiert wird. Unter Win compiliert es einwandfrei. Unter Unix ( gcc ) gibt es einen Fehler, da die globale Funktion noch nicht bekannt ist ( ist ja auch logisch... )
Gibt es hier irgendeine trickreiche Option um dem GCC das gleich Verhalten aufzuwingen ?
-
Ist das Objective-C?
Warum nach Compilertricks suchen, anstatt den Fehler im Programm zu beheben?
Also den Prototypen der globalen Funktion in File_B bekannt zu machen.
-
Nein, das ist kein Objective-C. Ich möchte ungern die Sourcen anpassen, da das Problem an mehreren Stellen auftritt. Das ganze ist auch beliebig kompliziert wenn noch mehrere Dateien hinzukommen
-
blöde Frage: wenn es kein Objective-C ist, wieso verwendest du dann das Keyword class und kompilierst mit dem gcc statt g++? Oder ist class ein macro für struct?