40

私は現在使用しています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’

に置き換えましc11gnu11が、同じエラーが発生します。gcc の最新の C 標準を有効にする正しい方法は何ですか?

(注: 最新の C++ 標準ではなく、最新の C 標準に興味があります。)

4

4 に答える 4

59

正しいオプションは-std=c11.

ただし、 では使用できませんgcc 4.6。少なくともgcc 4.7このオプションをサポートする必要があります。のようないくつかの古いバージョンgcc 4.6では、オプション-std=c1xは C11 の実験的 (つまり、非常に限定的な) サポートで利用可能でした。

の現在のバージョンgccgcc 8.2.

于 2013-04-27T20:30:57.343 に答える
1

.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
于 2016-04-06T14:23:09.437 に答える