なぜGCCは、Ubuntuの10にはるかに冗長なように見えるのでしょうか?

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

  •  26-09-2019
  •  | 
  •  

質問

私は最近、(大学)CPクローンを作っていると私は、私はチャンスを得たことがなかった何かを発見するために起こっています。

これはCソースをコンパイル少なくともGCCに適用されます。

私は、Appleの/usr/bin/gcc --version

を搭載したMac OS X(10.6.4)で、この特定のCプログラムのメイン開発構築しました
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.
しかし、私は、最新のgcc(Appleのような添加なし、ノーカスタマイズ、無改造)

で、マックの中にアーチLinuxの仮想マシンでテストを実施しました
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

だから、私は常に(すべてのOSで)実行していた-WallとGCCが有効になっています。 Macとアーチは、警告を示したことはありません。

Ubuntuはのせず-Wall

と、2回の警告を印刷しました
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

なぜそれが起こるのでしょうか?

私は、他の2つのOSにおけるとUbuntu Iのいずれかの警告が表示されないのはなぜでしょうか?

役に立ちましたか?

解決

Ubuntuの強制いくつかのCFLAGSあなたが見ることができるようにここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top