Forum: PC-Programmierung gcc ignoriert "extern"


von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hi,

ich habe das Problem, dass ich ein Programm von WIN32 nach Linux 
portieren will. Dabei stolpert der gcc (g++) über folgendes:
1
extern enum dataType_e;
und behauptet, "dataType_e has not been declared".

Weiterhin heissen die files alle .cpp (wg. MS VC). Kann man im Makefile 
den gcc überreden, nicht mit g++ zu compilieren? Oder sollte das egal 
sein?

Das Programm (Console) compiliert in MS VC ohne Probleme. Es geht jetzt 
um die Portierung.
Weiss jemand Rat? Im Netz werde ich leider nicht fündig...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Random ... schrieb:
> und behauptet, "dataType_e has not been declared".

Kein Wunder. Ein enum ist nur ein Datentyp, wie soll der extern 
deklariert werden?

Das kann so auch mit dem Microsoft-C-Compiler nicht übersetzbar sein.

> Weiterhin heissen die files alle .cpp (wg. MS VC). Kann man im Makefile
> den gcc überreden, nicht mit g++ zu compilieren?

Womit soll er die sonst compilieren? *.cpp sind C++-Dateien, die 
müssen mit einem C++-Compiler übersetzt werden.

von Rolf M. (rmagnus)


Lesenswert?

Random ... schrieb:
> Weiterhin heissen die files alle .cpp (wg. MS VC).

Wieso? Kann der C-Files nur verarbeiten, wenn sie die Endung haben, die 
eigentlich für C++ gedacht ist?

> Kann man im Makefile den gcc überreden, nicht mit g++ zu compilieren?
1
gcc -x c

Sinnvoller wäre es aber, die Dateien dann gleich so umzubenennen, daß 
die Namen stimmen.

> Oder sollte das egal sein?

Kommt auf den Code an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.