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?

War es hilfreich?

Lösung

erzwingt Ubuntu einige CFLAGS wie Sie hier sehen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top