为什么GCC在Ubuntu 10中显得更加冗长?

时间:2010-11-19 12:15:33

标签: macos gcc ubuntu archlinux

我最近做了一个cp克隆(大学),我碰巧发现了一些我从未有机会的东西。

这至少适用于编译C源的GCC。

我在Mac OS X(10.6.4)中进行了这个特定C程序的主要开发,使用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.

但是,我在Mac中的Arch Linux虚拟机中运行测试,使用最新的gcc(没有添加,没有自定义,没有类似Apple的mod)

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

所以,我一直在运行(在每个操作系统中)启用了-Wall的gcc。 Mac和Arch从未表现出任何警告。

Ubuntu打印了两个警告,且没有 -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版本是发行版的默认版本: gcc (Ubuntu 4.4.3-ubuntu5) 4.4.3

为什么会这样?

为什么我在其他两个操作系统和Ubuntu中都没有看到任何警告?

1 个答案:

答案 0 :(得分:1)

Ubuntu强制执行一些CFLAGS,因为您可以看到here