包括xCode中未显示的错误

时间:2012-12-05 11:28:19

标签: c++ xcode compiler-construction gnu

最近我开始解决在线评委的问题,例如UVA Online Judge。我尝试用C ++解决这些问题,然后用xCode IDE编写代码。

但是,当我在我的代码中使用一些C函数(如printf或scanf)时,xCode不会抱怨并且一切运行正常,但是,当我将代码提交给裁判时,它正在使用GNU C ++ 4.5进行编译。 3,它给出了编译错误。问题是我必须包含cstdio标题。

xCode没有对这个小错误发出任何警告,这有点令人讨厌。有什么办法可以解决这些错误吗?因此,当我使用需要标题的函数时,它会发出警告或错误吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是由LLVM编译器的头文件集引起的。 <iostream>包括<ios>,其中包含<cstdio>,这将导致printf的声明出现。

如果使用标记-std=gnu++0x编译cpp代码,则在Linux上的g++下编译成功。

我不认为有一个选项会在MacOS X上触发相同的错误,除非您安装gcc的完整副本,包括gcc标头,因为<ios>标头隐含地包含了标头LLVM

在这种情况下,您应该已经完成​​#include <cstdio>以确保声明了该函数,并且这也适用于gnu gcc编译器。