programing

최신 버전의 gcc에서 c11을 활성화하는 방법은 무엇입니까?

bestprogram 2023. 7. 1. 09:07

최신 버전의 gcc에서 c11을 활성화하는 방법은 무엇입니까?

현재 사용 중입니다.gcc 4.6.3제가 아는 바로는gcc기본적으로 다음을 사용합니다.gnu89표준 및 최신 C 표준인 C11을 활성화하고 싶습니다.노력했습니다.

[pauldb@pauldb-laptop test ]$ gcc -std=c11 -o test test.c
cc1: error: unrecognised command line option ‘-std=c11’

교체했습니다c11와 함께gnu11저도 같은 오류가 발생합니다.gcc에 대한 최신 C 표준을 활성화하는 올바른 방법은 무엇입니까?

(참고: 저는 최신 C++ 표준이 아닌 최신 C 표준에 관심이 있습니다.)

올바른 옵션은 다음과 같습니다.-std=c11.

그러나 에서 사용할 수 없습니다.gcc 4.6적어도 필요합니다.gcc 4.7이 옵션을 지원합니다.다음과 같은 일부 이전 버전에서는gcc 4.6선택 사항-std=c1xC11의 실험적(즉, 매우 제한적) 지원으로 사용할 수 있었습니다.

의 현재 버전은gcc이라gcc 8.2.

GCC 4.9.x는 이전 버전보다 훨씬 완벽한 지원을 제공합니다.이 기능을 꼭 사용해야 한다면 아무 것이나 4.8+로 전환하십시오. 지원 상태는 다음과 같습니다. -- https://gcc.gnu.org/wiki/C11Status

gcc 5.2.0은 명령줄 옵션 '-std=c11'과 함께 작동합니다.

.spec 파일 내부:

%define gcc_ver %(if [[ $(gcc -dumpversion) > 4.7 ]]; then echo 1; else echo 0; fi)
# Do we use c11 ?
%if 0%{?gcc_ver} < 1
  %global std_c11 0
%else
  %global std_c11 1
%endif

# if the configure of the package supports it add :
%if %{std_c11}
  --enable-cxx11 \
%endif

언급URL : https://stackoverflow.com/questions/16256586/how-to-enable-c11-on-later-versions-of-gcc