Warum GCC scheint viel ausführlicher in Ubuntu 10?
Frage
Ich habe vor kurzem einen cp-Klon (für University) gemacht und ich zufällig etwas zu entdecken hatte ich nie die Chance bekam.
Dies gilt zumindest für GCC eine C-Quelle zu kompilieren.
Ich habe die wichtigste Entwicklung dieses speziellen C-Programm in einer Mac OS X (10.6.4), baut mit Apples /usr/bin/gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.
Allerdings lief ich die Tests in einer Arch Linux virtuellen Maschine innerhalb des Mac, mit der neuesten gcc (keine Zusätze, keine Anpassungen, 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 zu bauen, dass wir es.
Meine 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 zeigte nie eine Warnung aus.
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 ist die Standardeinstellung für die Verteilung:
gcc (Ubuntu 4.4.3-ubuntu5) 4.4.3
Warum passiert das?
Warum sehe ich keine Warnungen in den beiden anderen Betriebssystemen und in Ubuntu ich tun?
Lösung
erzwingt Ubuntu einige CFLAGS wie Sie hier sehen