なぜGCCは、Ubuntuの10にはるかに冗長なように見えるのでしょうか?
質問
私は最近、(大学)CPクローンを作っていると私は、私はチャンスを得たことがなかった何かを発見するために起こっています。
これはCソースをコンパイル少なくともGCCに適用されます。
私は、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.
しかし、私は、最新の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
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あなたが見ることができるようにここを
所属していません StackOverflow