【问题标题】:Include errors not shown in xCode包括 xCode 中未显示的错误
【发布时间】:2012-12-05 11:28:18
【问题描述】:

最近我开始解决在线法官的问题,例如 UVA 在线法官。我尝试使用 C++ 解决这些问题,并使用 xCode IDE 编写代码。

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

xCode 没有就这个小错误给出任何警告,这有点烦人。有什么办法可以打开这些错误吗?那么当我使用需要标头的函数时,它会给出警告或错误?

谢谢!

【问题讨论】:

  • 检查项目设置,应该是启用更多警告的一项。
  • 这可能会通过设置选项检测到:Treat Missing Function Prototypes as Errors
  • 不,这不会给出任何错误 :( 感谢您的输入!
  • LLVM 包含 <ios> 包含 <cstdio>,这就是您遇到差异的地方。您应该在 linux 上使用 gcc 正确测试编译您的代码,以模拟法官正在做的事情

标签: c++ xcode compiler-construction gnu


【解决方案1】:

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

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

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

在这种情况下,您应该使用#include <cstdio> 来确保函数已被声明,这也适用于 gnu gcc 编译器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 2015-05-22
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多