[英]C++ compile issue with c++11
我正在尝试从make文件中编译一些C ++文件。 我继续收到此错误:
<i> no member named 'to_time_t' in
'std::__1::chrono::steady_clock'; did you mean
'std::chrono::system_clock::to_time_t'?
time_t tnow = std::chrono::high_resolution_clock::to_time_t(now);
</i>
然后经过一番研究,我发现这是因为我没有使用c ++11。我使用的是MAC OS X 10.10.2。 因此,我安装了brew,然后使用brew安装了gcc和g ++ 4.9。 但是,我仍然遇到相同的错误。 有什么建议么? 此代码在Linux机器上运行。
任何帮助,将不胜感激。
to_time_t
是其成员system_clock
,但不是(一定) steady_clock
或high_resolution_clock
。 您使用的是high_resolution_clock
,在系统上,按照错误消息显示,该别名似乎是steady_clock
的别名,而不是system_clock
的别名。 如果代码在另一个平台上为您工作,则可能是在那个平台上, high_resolution_clock
是system_clock
的别名,但是您不能总是这样。
解决的办法是只使用system_clock
,如果你wan't一个time_t
从它。 system_clock
分辨率至少应与time_t
一样高,因此在此处使用可能更高分辨率的时钟不会为您带来任何收益。 或者,如果仅需要当前时间,则首先使用std::time
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.