【问题标题】:Compilation error error C2039: 'clock_t' : is not a member of '`global namespace''编译错误 error C2039: 'clock_t' : is not a member of '`global namespace''
【发布时间】:2014-07-17 09:42:29
【问题描述】:

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

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

c:\program files (x86)\microsoft visual studio 10.0\vc\include\ctime(18): error C2039: 'clock_t' : is not a member of '`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>

【问题讨论】:

  • 如果您将&lt;ctime&gt; 包含为&lt;time.h&gt;,您可能会无意中包含一个完全不同的文件,具体取决于您的包含路径。
  • 您遇到的第一个错误是什么?其余的可能只是附带损害。
  • 这里是第一个错误:c:\program files (x86)\microsoft visual studio 10.0\vc\include\ctime(18): error C2039: 'clock_t' : is not a member of ' `全局命名空间''
  • @mikners 你能发一个SSCCE吗?
  • @Theolodis:我怀疑这是否相关。链接器错误 编译器错误。

标签: c++ boost compiler-errors ctime


【解决方案1】:

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

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

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

【讨论】:

  • 这正是我的问题 - 创建了我自己的标题“Time.h”并开始遇到问题。
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
相关资源
最近更新 更多