我想在gcc编译器中激活c99模式,我在此论坛的其他帖子中读到-std
应该等于-std=c99
,但我不知道如何使用它来设置此值命令行所以请帮忙。
答案 0 :(得分:31)
使用编译:
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 。
答案 1 :(得分:6)
您可以尝试使用-std=c99
标记。
尝试像这样拼凑:
gcc -Wall -std=c99 -g myProgram.c
另请注意,-g
用于调试选项(感谢Alter Mann指向)。
答案 2 :(得分:2)
根据另一个答案下的评论,也许你正在使用隐式的make规则而没有Makefile。如果是这样,那么您只需运行make tst
从 tst.c 生成 tst 二进制文件。在这种情况下,您可以通过设置环境变量CFLAGS
来指定标志。您可以为当前shell设置它,或者将其添加到~/.bashrc
以使其始终具有此功能:
export CFLAGS='-Wall -Wextra -std=c99'
或仅为单个命令指定它:
CFLAGS='-Wall -Wextra -std=c99' make tst
(注意:我也添加了警告标志,你应该真的使用它们,它们会发现很多潜在的错误,或者只是你应该写不同的错误代码。)