编译错误错误 C2039:"clock_t":不是"全局命名空间"的成员

Compilation error error C2039: 'clock_t' : is not a member of '`global namespace''

本文关键字:错误 全局 命名空间 成员 不是 C2039 clock 编译      更新时间:2023-10-16

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

在编译过程中,我得到了一堆这样的错误

c:program files (x86)microsoft visual studio 10.0vcincludectime(18): error C2039: 'clock_t':不是'全局命名空间'的成员

所有的错误都是关于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>

代码库中的某个地方包含了不同的"time.h"。我刚刚发现这个从Linux迁移到Windows的代码——因为Windows不区分大小写,本地的"Time.h"(注意大写)被包含为"Time.h",导致了您看到的错误。

根据某人的帖子,FFMPEG可以通过这种精确的机制引起这个问题。

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