Почему GCC кажется гораздо более многословным в Ubuntu 10?

StackOverflow https://stackoverflow.com/questions/4224855

  •  26-09-2019
  •  | 
  •  

Вопрос

Я недавно сделал CP Clone (для университета), и я случайно открыл что-то, что у меня никогда не было возможности.

Это относится, по крайней мере, для GCC компиляции источника C.

Я сделал главное развитие этой конкретной программы C в Mac OS X (10.6.4), строит с Apple /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.

Однако я провел тесты в виртуальной машине Arch Linux в Mac, с последними GCC (без добавок, нет настроек, без модов, таких как Apple)

gcc (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.

И нам пришлось построить его в классе в Ubuntu 10.04.1 LTS, которые у нас там есть.

Мой makefile был что-то вроде:

CC=gcc
#CFLAGS=-O0 -g -Wall
CFLAGS=-O3 -Wall -finline-functions
EXE=copy

compile:
    $(CC) $(CFLAGS) -o $(EXE) main.c

Итак, я всегда бегал (в каждой ОС) GCC с -Wall включено. Mac и Arch никогда не проявляли никакого предупреждения.

Убунту напечатал два предупреждения, с и без -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

Версия GCC Ubuntu - это значение по умолчанию для распределения:gcc (Ubuntu 4.4.3-ubuntu5) 4.4.3

Почему это происходит?

Почему бы я не вижу никаких предупреждений в двух других ОС и в Убунту, я делаю?

Это было полезно?

Решение

Ubuntu обеспечивает некоторые CFLAGS, как вы можете видеть здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top