ubuntuusers.de

GCC auf englisch in Code::Blocks aufrufen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

bas89

Anmeldungsdatum:
23. April 2006

Beiträge: 478

Ich habe das Problem, dass Code::Blocks mit meinem deutschen GCC nicht umgehen kann. Wenn ich ein Programm übersetze, und eine Warnung bekomme, steht in der Ausgabe des GCC ja zB.

Warnung: format »%i« erwartet Typ »int«, aber Argument 3 hat Typ »const int*«|

Nun erkennt Code::Blocks anscheinend zB. an dem Wort "Warning", was eine Warnung, was ein Fehler ist. Obwohl ich ein mal "Warnung" und zwei "Fehler" in dem Log habe, steht am Ende des Logs "0 Warnings, 3 Errors".

In den Compiler-Einstellungen kann ich den Ort von GCC einstellen und viele Optionen. Aber wie bekomme ich den GCC dort englisch?

Auf der normalen Konsole geht dies über

LANGUAGE="en" gcc

Aber ein Einfügen von LANGUAGE="en" in die Zeile, wo man den Ort in den Compilereinstellungen eingibt, lässt das Kompilieren garnicht mehr starten.

bas89

(Themenstarter)

Anmeldungsdatum:
23. April 2006

Beiträge: 478

**PUSCH**

maus_on_think

Avatar von maus_on_think

Anmeldungsdatum:
23. März 2006

Beiträge: 17

Hallo,

GCC spricht die Sprache, wie in der Umgebungsvariablen LC_ALL definiert wurde. Siehe dazu folgenden Link: http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html

LC_ALL=en 

sollte die Sprache auf englisch umstellen.

bas89

(Themenstarter)

Anmeldungsdatum:
23. April 2006

Beiträge: 478

Jau, blos wie kriege ich das hin, ohne dass dann auch andere Programme englisch sprechen? Codeblocks ruft den gcc ja auf.

fuchsfuchsfuchs Team-Icon

Maskottchen
Avatar von fuchsfuchsfuchs

Anmeldungsdatum:
23. Juni 2008

Beiträge: 5653

Wohnort: Confoederatio Helvetica

bas89 schrieb:

Jau, blos wie kriege ich das hin, ohne dass dann auch andere Programme englisch sprechen? Codeblocks ruft den gcc ja auf.

Entweder hat Codeblocks direkt eine Unterstuetzung fuer Umgebungsvariablen, oder Du startest Codeblocks schon mit LC_ALL=en gesetzt.

Also LC_ALL=en <befehl fuer codeblocks>

Fuchs

berndth

Anmeldungsdatum:
26. September 2007

Beiträge: 290

bas89 schrieb:

Jau, blos wie kriege ich das hin, ohne dass dann auch andere Programme englisch sprechen? Codeblocks ruft den gcc ja auf.

Prozesse erben ihre Umgebung vom Elternprozeß. Ich kenne Codeblocks nicht, aber je nachdem, wie Codeblocks vorgeht, gibt es verschiedene Möglichkeiten:

  • Codeblocks erlaubt, die Umgebung des Compiler-Prozesses festzulegen. Dann setze die LANG (oder LC_ALL, oder was auch immer) Variable dort

  • Codeblocks forkt den Compiler Prozeß, ohne die Umgebung zu beeinflussen. Dann kannst du Codeblocks selbst mit LANG oder LC_ALL oder was auch immer starten.

  • Du willst Codeblocks auf Deutsch haben, aber gcc trotzdem auf Englisch: Du kannst versuchen, den gcc-Aufruf in eine Shell zu wrappen, in der du dann die Umgebung modifizierst:

    /bin/sh -c "LANG=C gcc $WEITERE_ARGUMENTE"
  • Da du vermutlich keine Variable $WEITERE_ARGUMENTE zur Verfügung hast, und Codeblocks davon ausgeht, dass es einfach alle Argumente hinter den Compiler-Aufruf-Befehl anhängen kann, könntest du versuchen, den Aufruf selbst in ein Shell-Script zu wrappen

    #!/bin/sh
    LANG=C gcc $@
  • Je nachdem, wie der Compiler-Prozeß gestartet wird, muss er aber nicht mit Shell-Scripten zurecht kommen. In dem Fall könntest du dir ein minimales Programm schreiben, dass selbst die Umgebungsvariablen umbiegt, und seine Argumente an gcc weiterleitet.

Wie gesagt, ich kenne Codeblocks nicht, deshalb kann ich nur raten. Die Hinweise sind alle ungetestet.

bas89

(Themenstarter)

Anmeldungsdatum:
23. April 2006

Beiträge: 478

berndth: Die vierte Variante ist die Lösung!

Für alle mit dem gleichen Problem: Man erstelle eine g++.sh und eine gcc.sh irgendwo mit dem Inhalt

#!/bin/sh
LANG=EN gcc "$@"
#!/bin/sh
LANG=EN g++ "$@"

und mache beide ausführbar. Den Ordner, in dem die Scripte liegen, füge man der Liste unter Settings->Compiler and Debugger->Toolchain executables(schwer zu finden!)->Additional Paths zu. Unter Program files ersete man gcc durch gcc.sh und g++ ebenso.

Nun hat sich das Problem ☺

Antworten |