我在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%向后兼容。

10-07 12:13
查看更多