我在Ubuntu中用C语言编写了一个代码,用于检查给定输入中的方括号。我使用gcc编译器对其进行了编译,并获得了正确的输出。这实际上是在线课程的一部分,他们要求我使用编译器旗
gcc -pipe -O2 -std=c11 filename -lm
我认为我不知道该怎么做,因此尝试使用此标志进行编译,但我的代码未编译。我的问题是我执行时代码是否可以编译
gcc filename.c
为什么我不编译
gcc -pipe -O2 -std=c11 filename -lm
我收到的错误消息是:
cc1plus: warning: command line option ‘-std=c11’ is valid for C/ObjC but not for C++
最佳答案
原因是文件结尾。大写的C被解释为C ++文件。解决方案是像这样重命名文件:
mv filename.C filename.c
我的问题是,当我执行
gcc filename.C
时我的代码是否可以编译?往上看。但是在某些情况下,它不能解决所有问题。尽管C11对以前的版本进行了一些扩展,但并不是100%向后兼容。