Re: C unter FreeBSD

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: Tue, 14 Feb 2006 20:24:55 +0100

Am Dienstag, den 14.02.2006, 20:05 +0100 schrieb Bernd Walter:
> On Tue, Feb 14, 2006 at 07:52:22PM +0100, Marc Santhoff wrote:
> > Tag,
> >
> > da C nicht gerade meine Heimatplanet ist habe ich eine Frage, die für
> > manchen vielleicht selbstverständlich ist.
> >
> > Wenn in einem Programm vor der Variablendeklaration schon verschiedene
> > Anweisungen stehen, meckert gcc unter FreeBSD:
> >
> > main.c: In function `main':
> > main.c:46: syntax error before `int'
> > main.c:47: `param' undeclared (first use in this function)
> >
> >
> > Der Quelltext an der Stelle:
> >
> > int main (int argc, char *argv[])
> > {
> > #ifdef ENABLE_NLS
> > bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
> > bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
> > textdomain (GETTEXT_PACKAGE);
> > #endif
> > gtk_set_locale();
> > gtk_init (&argc, &argv);
> > add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
> > int param = 1;
> >
> > Die letzte Zeile ist die bemängelte mit der Nummer 46.
>
> Je nach C Variante musst du alle Variablen am Funktionsanfang
> definieren.
> Ich schätze du benutzt noch einen recht alten Compiler.

Jupp, 4.11 System gcc:

$ gcc --version
2.95.4

> > Welchen Compilerschalter muß ich umlegen, um solches Verhalten zu
> > erlauben? (Ich weiß, eigentlich sollte man das Programm korrigieren,
> > aber ich versuche nur es zu übersetzen ... scheinbar wird diese Technik
> > der "begleitenden Deklaration" überall benutzt)
>
> Du kannst C++ compilieren, dort geht das schon länger.
> Aber im allgemeinen solltest du besser die Definition an den Anfang
> setzen - ist eh übersichtlicher.

Ich hab' jetzt mal CC=gcc34 gesetzt und es läuft durch!

Vielen Dank,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 14 Feb 2006 - 20:27:11 CET

search this site