Ich habe eine extern bereitgestellte CPP-Datei. Es ist eine Mischung aus C-kompatiblem Code und ein bisschen C++. Der C++ - Code ist nur ein Wrapper um das C, um die C++ - Funktionen zu nutzen.Erzwingen gcc zum kompilieren von .cpp-Datei als C
Es verwendet #ifdef __cplusplus
Makros, um den C++ - Code zu schützen, was großartig ist. Leider, wenn ich versuche, mit gcc zu kompilieren, behandelt es es als C++ wegen der Dateiendung. Ich bin mir der Unterschiede zwischen gcc und g ++ bewusst - ich möchte nicht als C++ kompilieren.
Gibt es eine Möglichkeit, gcc zu zwingen, diese Datei als eine C-Datei zu behandeln? Ich habe versucht, z.B. --std=c99
, aber dies erzeugt korrekt den Fehler, dass C99 nicht für C++ gültig ist.
Das Umbenennen der Datei zu .c funktioniert, aber ich möchte dies vermeiden, wenn es möglich ist, weil es extern zur Verfügung gestellt wird, und es wäre schön, dass es als eine ursprüngliche Kopie bleibt.
Danke!
Manchmal wenn ich SO Fragen sehe. Ich möchte nur ein großes RTFM schreien !! 'Mann gcc'. Für diesen König der Frage braucht es tatsächlich weniger Zeit als die Frage zu schreiben. – log0
Ich hatte das gleiche Problem, weil ich reinen C-Code innerhalb einer .cpp-Datei kompilieren wollte ... offensichtlich bin ich ein ziemlich Anfänger in Bezug auf C. RTFM! ist dann nicht so ein guter Rat. GCC-Manpages sind 11.000 Zeilen und es ist ziemlich schwierig, dort eine Lösung zu finden, wenn Sie nicht wissen, wonach Sie suchen sollen. – mort