はい、通常、デフォルトのフラグはかなり異なると予想できます。幸いにも、フラグが何であるかを知る必要はなく、フラグを設定する必要はありません。
UbuntuはDebianに非常に密接に基づいているので、UbuntuとDebianはかなり似ています。しかし、GCCが使用する実際のオプションはかなり技術的なので、さまざまなオプションがあります。あなたは次のことを実行することにより、それらを見ることができます。
gcc -Q -v -x c -c /dev/null
これは、Cプログラム(-x c -c /dev/null
)として/dev/null
をコンパイルし、開発者向け情報(-Q -v
)の束をプリントアウトするためにGCCを要求します。私はGCC 4.4、4.6、4.8でこれを実行し、異なる結果を得ました。私のマシン上で
> -faggressive-loop-optimizations
> -fgnu-runtime
> -fgnu-unique
< -finline-functions-called-once
> -finline-atomics
> -fira-hoist-pressure
> -fsync-libcalls
> -ftree-coalesce-vars
< -fvect-cost-model
> -mfxsr
> -mlong-double-80
は、GCCが異なる80使用しています。ここでは
< -falign-loops
< -fargument-alias
> -fdelete-null-pointer-checks
> -fprefetch-loop-arrays
> -fsched-critical-path-heuristic
> -fsched-dep-count-heuristic
> -fsched-group-heuristic
> -fsched-last-insn-heuristic
> -fsched-rank-heuristic
> -fsched-spec-insn-heuristic
> -fshow-column
> -fstrict-volatile-bitfields
> -ftree-forwprop
> -ftree-loop-if-convert
> -ftree-phiprop
> -ftree-pta
> -ftree-slp-vectorize
> -fvar-tracking-assignments
< -mfused-madd
私のマシン上のバージョン4.6から4.8への差分がされています。ここに私のマシンで4.4と4.6のオプションの違いはC!コンパイル時のデフォルトのオプションオプションは、C++をコンパイルしたり、異なるプラットフォームでコンパイルしたりするときにも変更されます。
でも、大丈夫です。あなたは基本的にこれらのオプションをすべて無視して、さまざまな-W
警告フラグ、-O
最適化フラグ(実際には、あらかじめ選択されたトンのショートカットです。-f
フラグと私のコンピュータのいくつかの-m
) -O2
は63の追加のフラグを有効にします)!-g
デバッグデータフラグ。
そしてもちろん、基本的なフラグなど-std=
、-c
、-o
、-l
、-I
、
ように私は意味、あなたは本当に-fbranch-count-reg
が何を知っておく必要がありますか?あんまり。
UbuntuはDebianをベースにしています。 – Olaf
@Olaf ...しかしDebianの岩;) – LPs
これは必然的にデフォルトのコンパイラオプションが同じであることを意味しますか? – Maximilian