编译错误错误C2039:'clock_t':不是'`global namespace''的成员

时间:2014-05-28 08:55:06

标签: c++ boost compiler-errors ctime

我正在使用boost 1_53在VS 2010中进行编译。 我也在使用boost的线程。

在编译过程中我遇到了很多这样的错误

  

c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ include \ ctime(18):error C2039:'clock_t':不是'`global namespace''的成员

所有错误都是ctimec_time.hpp

我一直在寻找解决方案,但没有成功。

任何人都可以帮忙吗?

这里是代码的一部分。

#define BOOST_THREAD_USE_DLL 

#include <boost/optional.hpp>
#include <boost/thread.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

1 个答案:

答案 0 :(得分:11)

某些东西,代码库中的某个地方包含一个不同的“time.h”。我刚刚发现这个迁移代码从Linux迁移到Windows - 因为windows不区分大小写,本地“Time.h”(注意大写)被包含为“time.h”,导致你看到的错误。

根据someone's post,FFMPEG可以通过这种精确的机制引起这个问题。

请查看您的代码库和/或库中的“time.h”,看看是否发生了这种情况。否则,另一个选择是输出完全预处理的源,以查看在违规文件中实际编译的内容。