【问题标题】:time not declared in scope, how do I find which includes a file uses?时间未在范围内声明,如何找到包含文件使用的时间?
【发布时间】:2013-04-09 01:44:07
【问题描述】:

这让我发疯了,我已经在这个问题上停留了几个小时。我在项目的几个文件中使用 time.h,当我尝试使用函数 time() 时,每个文件都会出现错误“时间未在范围内声明”。奇怪的是 time_t 被定义了,我没有得到任何错误。我想也许它以某种方式引入了 C++ 版本,所以尝试使用命名空间 std:: 但这也不起作用。 struct tm 和 localtime 也没有在范围内声明。顺便说一句,所有代码在其他系统上都可以正常编译。

我在这里发疯了,我怎样才能弄清楚文件正在使用哪些标头,定义了什么或发生了什么?我不知道如何继续,请帮助!

我在 Xcode 3.2.5 中使用 GCC 4.2 和 10.6 SDK

如果你想看这里的代码,虽然没用,但我认为它必须是编译器/包含文件的问题。

            time_t long_time;
            time(&long_time);
            tm* st = localtime(&long_time);
            sprintf(temp, "%02d:%02d:%02d %02d.%02d.%04d  ",
                    st->tm_hour, st->tm_min, st->tm_sec, st->tm_mon+1, st->tm_mday, st->tm_year+1900);

【问题讨论】:

  • 您实际上有#include <time.h> 在您尝试使用时间函数的文件的第一行中?还是你只是忘了做?
  • @H2CO3 我认为是正确的;向我们展示您的#include 声明。不过,要回答您的问题,您可以转到Terminal 并输入man -s 3 timeman -s 3 localtime,它会告诉您需要包含哪些内容。
  • 尝试在 Xcode 中打开 time.h,文件打开 Quickly-time.h 顺便说一句,我可以在 Mountain Lion Xcode 4.2.1 上使用 time()

标签: xcode macos cocoa time


【解决方案1】:

发现了问题。我正在使用具有名为 time.h 的标头的 enet,因为 xcode 在子目录下找不到 enet 文件我将其包含在我的用户标头搜索路径中,显然编译器首先查看用户路径并拉入 enet time.h 而不是系统一

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多