[gelöst]g++ -xc (was macht das xc?)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Tagedieb
Beiträge: 197
Registriert: 05.02.2006 20:26:18
Lizenz eigener Beiträge: MIT Lizenz

[gelöst]g++ -xc (was macht das xc?)

Beitrag von Tagedieb » 30.01.2007 12:13:32

Hab damal ne Frage

#include <stdio.h>
int main ()
{
#ifdef __cplusplus
printf("Hello World!\n");
#else
printf("Good Bye World!\n");
#endif
}

Wenn ich dieses kurze Programm mit:

Code: Alles auswählen

g++ -xc -o onlyTest onlyTest.c
erzeuge bekomme ich aus als Ausgabe: Good Bye World
bei

Code: Alles auswählen

g++ -o onlyTest onlyTest.c
bekomme ich die Ausgabe: Hello World

Was macht den der Schatler -xc hier genau?? Hab zwar mal in den man-files geguckt aber so richtig schlau werd ich daraus nicht.
Danke schonmal und viele Grüße



edit::Vielen Dank
Zuletzt geändert von Tagedieb am 31.01.2007 00:43:36, insgesamt 1-mal geändert.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 30.01.2007 12:25:30

Steht doch in der Manpage
man g++-4.1 hat geschrieben: -x language
Specify explicitly the language for the following input files
(rather than letting the compiler choose a default based on the
file name suffix). This option applies to all following input
files until the next -x option. Possible values for language are:

c c-header c-cpp-output
c++ c++-header c++-cpp-output
objective-c objective-c-header objective-c-cpp-output
objective-c++ objective-c++-header objective-c++-cpp-output
assembler assembler-with-cpp
ada
f95 f95-cpp-input
java
treelang
, es kompiliert den Quelltext als C.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 30.01.2007 12:26:17

mit "-xc" sagst du dem Compiler, daß es sich hierbei um C-Code handelt, daher ist danach "__cplusplus" nicht definiert und es kommt die Ausgabe "Good By World"

Gruß
gms

Antworten