GCC unter windows

Gast #3104312
Lesenswert?

> was genau heißt das?

Ich vermute Du hast ein falsches(tm) encoding angegeben (oder im 
flacshen charset gespeichert). Lass mal 'file' auf die main.c los. 
Behelfsweise lad mal eine Datei hier hoch (als Anhang!).

> Was ist ein Null character?

Eine 0, oder '\0', auch bekannt als 'Null'.
Gast #3104335
Lesenswert?

1
$ gcc -o main main.c 2>&1 | head -n 5
2
main.c:1:1: error: stray ‘\377’ in program
3
main.c:1:1: error: stray ‘\376’ in program
4
main.c:1:1: error: stray ‘#’ in program
5
main.c:1:4: warning: null character(s) ignored [enabled by default]
6
main.c:1:6: warning: null character(s) ignored [enabled by default]
7

8
$ file main.c 
9
main.c: C source, Little-endian UTF-16 Unicode text, with CRLF, LF line terminators
10

11
$ gcc -finput-charset=utf16 -o main main.c
12
main.c:1:19: error: failure to convert utf16 to UTF-8
13
main.c: In function ‘main’:
14
main.c:4:2: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
15
main.c:5:43: warning: incompatible implicit declaration of built-in function ‘scanf’ [enabled by default]
16

17
$ echo da iss was am encoding kaputt >/dev/null
18

19
$ ghex main.c 
20

21
$ iconv -f utf16 -t utf8 -o main-utf8.c main.c 
22

23
$ file main-utf8.c 
24
main-utf8.c: C source, ASCII text, with CRLF, LF line terminators
25

26
$ gcc -o main main-utf8.c
27

28
$ file main
29
main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x48a4f97d8e07b1e2a06a2bd1dcf88be6d887f033, not stripped

..nimm einen anständigen Editor und gib ggf. das input-charset mit an.
Gast #3104355
Lesenswert?

(streiche 'input-charset', setzte 'Ausgabe-Charset' - ich bekommt gcc 
nicht zuverlässig mit utf16 zum laufen. Vielleicht weiss Gugl da noch 
was dazu).

> Gibt es eine Möglichkeit ohne dieses char Dings reinzugeben?

Theoretisch kann man Notpad++ das Ausgabe-Charset angeben. Allerdings 
nutzte ich das nie (unter Windows (fast) nur ConTEXT), ich kann Dir also 
nicht zuverlässig sagen, wo - laut Gugl irgendwo(tm) in den Preferences 
als 'utf8 ohne BOM'.
Moderator Persönliche Seite #3104957
Lesenswert?

Man kann dem GCC durchaus auch ein UTF-16-File hinsetzen:
1
j@remi 881% gcc -finput-charset=utf-16 -o prog main.c 
2
main.c:1:19: error: failure to convert utf-16 to UTF-8
3
main.c: In function 'main':
4
main.c:4:2: warning: incompatible implicit declaration of built-in function 'printf' [enabled by default]
5
main.c:5:43: warning: incompatible implicit declaration of built-in function 'scanf' [enabled by default]
6
main.c:5:2: warning: format '%ld' expects a matching 'long int *' argument [-Wformat]
7
main.c:5:2: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'int' [-Wformat]

Allerdings ist mir sein "failure to convert" gerade nicht klar.  Laut
Manual sollte die Konvertierung durch das iconv des Betriebssystems
abgedeckt werden; diese funktioniert jedoch, im Gegensatz zu GCCs
Fehlermeldung.
Gast #3105599
Lesenswert?

> Man kann dem GCC durchaus auch ein UTF-16-File hinsetzen:

Die (fast) selben Fehlermeldungen hatte ich oben [0] auch. Und mit iconv 
gings dann (latürnich) (ebenfalls [0]). Auf einem debian/testing/amd64. 
Also doch lieber bei utf8 bleiben :-)

Nix für ungut.

[0] mein Posting von 26.03.2013 22:14

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren