How to enable c11 on later versions of gcc?

后端 未结 4 589
轮回少年
轮回少年 2020-12-09 14:29

I currently use gcc 4.6.3. My understanding is that gcc by default uses the gnu89 standard and I would like to enable C11, the latest

相关标签:
4条回答
  • 2020-12-09 15:15

    The correct option is -std=c11.

    However, it is not available in gcc 4.6. You need at least gcc 4.7 to have this option supported. In some older versions like gcc 4.6, the option -std=c1x was available with experimental (i.e., very limited) support of C11.

    Note that the current version of gcc is gcc 8.2.

    0 讨论(0)
  • 2020-12-09 15:21

    Just to let you know GCC 4.9.x has far more complete support than older versions. If you really need to use this feature, please switch to anything 4.8+ Here is the support status -- https://gcc.gnu.org/wiki/C11Status

    0 讨论(0)
  • 2020-12-09 15:22

    gcc 5.2.0 works with command line option ‘-std=c11’

    0 讨论(0)
  • 2020-12-09 15:29

    Inside a .spec file :

    %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
    
    0 讨论(0)
提交回复
热议问题