Ich habe kürzlich einen cp-Klon (für die Universität) gemacht und zufällig etwas entdeckt, zu dem ich nie die Chance hatte.Warum erscheint GCC in Ubuntu 10 viel ausführlicher?
Dies gilt zumindest für GCC kompilieren eine C-Quelle.
habe ich die wichtigste Entwicklung dieser spezifischen C-Programm in einer Mac OS X (10.6.4), baut mit /usr/bin/gcc --version
Apple
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.
Allerdings habe ich die Tests in einem Bogen virtuellen Linux-Maschine lief innerhalb der Mac, mit der neuesten gcc (keine Zusätze, keine Anpassung, keine Mods wie Apple)
gcc (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.
Und wir hatten es in der Klasse in der Ubuntu 10.04.1 LTS, die wir dort haben zu bauen.
Mein Makefile war so etwas wie:
CC=gcc
#CFLAGS=-O0 -g -Wall
CFLAGS=-O3 -Wall -finline-functions
EXE=copy
compile:
$(CC) $(CFLAGS) -o $(EXE) main.c
Also, ich war immer läuft (in jedem OS) gcc mit -Wall
aktiviert. Mac und Arch zeigten nie eine Warnung.
Ubuntu gedruckt zwei Warnungen, mit und ohne-Wall
do_copy.c: In function 'do_copy_file2file':
do_copy.c:27: warning: ignoring return value of 'realpath', declared with attribute warn_unused_result
do_copy.c: In function 'do_copy_symlink2file':
do_copy.c:117: warning: ignoring return value of 'symlink', declared with attribute warn_unused_result
Ubuntu GCC-Version der Standard für die Verteilung ist: gcc (Ubuntu 4.4.3-ubuntu5) 4.4.3
Warum das passiert?
Warum sehe ich keine Warnungen in den anderen beiden Betriebssystemen und in Ubuntu ich tun?
Es gibt einen Anhaltspunkt in den Warnmeldungen sehen. –
@Paul: Das OP fragt nicht, was die Warnungen bedeuten, sondern warum sie in einer bestimmten Umgebung erscheinen. Diese Warnungen sind sehr paranoid und erscheinen normalerweise nicht, sogar mit "-Wall". –
@Marcelo: Ja, und wie ich schon sagte, ist der Grund leicht aus den Warnmeldungen ersichtlich - die Deklarationen von realpath und symlink in/usr/include/stdlib.h und/usr/include/unistd.h haben das Attribut warn_unused_result in neuere Distributionen. –