예, 일반적으로 기본 플래그가 상당히 다를 것으로 기대할 수 있습니다. 다행스럽게도 플래그가 무엇인지 알 필요가 없으므로 플래그를 설정할 필요가 없습니다.
우분투와 데비안은 꽤 비슷합니다. 왜냐하면 우분투는 데비안을 아주 근거로하고 있기 때문입니다. 그러나 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
가 무엇을 알아야합니까? 그렇지 않아.
우분투는 데비안을 기반으로합니다. – Olaf
@Olaf ...하지만 데비안 바위;) – LPs
이것은 반드시 기본 컴파일러 옵션이 동일하다는 것을 의미합니까? – Maximilian