habe MinGw installiert. Und habe versucht in der Kommandozeile gcc -o prog main.c einzugeben, jedoch kriege ich eine riesen liste von Warnungen und keine ausführbare Datei;( Was mache ich falsch?
g457 schrieb: > Encoding? was genau heißt das? Ich habe auch schon mingw32-gcc.exe main.c und alle anderen, aber ich bekomme immer die selben warnungen. Was bedeutet Null characters ignored? Was ist ein Null character?
> 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'.
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.
g457 schrieb: > ggf. das input-charset mit an. Ich kenne das leider nicht. Hab Notepad++ probiert, aber immer noch den selben Fehler. Gibt es eine Möglichkeit ohne dieses char Dings reinzugeben?
Frank schrieb: > Hab Notepad++ probiert, aber immer noch den selben Fehler. Dann lad den Text in das windows-eigene primitive Notepad und ruf die Funktion "Speichern unter" auf -- neben einem Dateinamen kannst Du dort auch die Codierung einstellen (ANSI, Unicode, Unicode Big Endian und UTF-8), hier ANSI auswählen.
(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'.
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.
> 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
g457 schrieb: > Die (fast) selben Fehlermeldungen hatte ich oben [0] auch. Sorry, hatte ich dann wohl doch überlesen. Ist nur nicht klar, warum er da einen Fehler spuckt, wenn das iconv selbst es dann doch kann.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
