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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.