web-dev-qa-db-ja.com

端末でgccでc99モードを有効にする方法

私はgccコンパイラでc99モードをアクティブにして、このフォーラムの他の投稿で-std-std=c99と等しくなければならないが、コマンドラインを使用してこの値に設定する方法がわからない助けてください。

12
user297904

次を使用してコンパイルします。

gcc -std=c99 -o outputfile sourcefile.c

gcc --helpはいくつかのオプションをリストします。オプションの完全なリストについては manual を参照してください。 C方言のさまざまなオプションは here にあります。

makeを使用しているので、CFLAGSを使用してgccのコマンドラインオプションを設定できます。

# sample makefile
CC = gcc
CFLAGS = -Wall -std=c99
OUTFILE = outputfile
OBJS = source.o
SRCS = source.c

$(OUTFILE): $(OBJS)
        $(CC) $(CFLAGS) -o $(OUTFILE) $(OBJS)
$(OBJS): $(SRCS)
        $(CC) $(CFLAGS) -c $(SRCS)

補遺(2016年後半に追加):C99はもう少し古くなっており、この回答を見ている人は探索したいかもしれませんC11代わりに。

32
jpw

-std=c99 国旗。

このようにコンパイルしてみてください:

gcc -Wall -std=c99 -g myProgram.c

-gはデバッグオプション用です(それを指しているAlter Mannに感謝します)。

6
Rahul Tripathi

別の答えの下にあるコメントに基づいて、おそらくあなたは暗黙のmakeルールを使用していて、Makefileを持っていません。この場合、make tstを実行して、tst.cからtstバイナリを生成しています。その場合、環境変数CFLAGSを設定してフラグを指定できます。次のようにして、現在のシェルに設定するか、~/.bashrcに追加して常に使用できます。

export CFLAGS='-Wall -Wextra -std=c99'

または、単一のコマンドだけに指定する:

CFLAGS='-Wall -Wextra -std=c99' make tst

(注:警告フラグも追加しました。実際に使用する必要があります。多くの潜在的なバグや、異なる方法で記述する必要のある不正なコードを検出します。)

2
hyde