【问题标题】:"xtime: ambiguous symbol" error, when including <boost/asio.hpp> [closed]“xtime: ambiguous symbol”错误,包括 <boost/asio.hpp> [关闭]
【发布时间】:2021-05-25 13:17:31
【问题描述】:

正如标题中所说,当我尝试从 boost 中包含 asio.hpp 时,我收到此错误:

'xtime': ambiguous symbol (compiling source file FILEPATH)
note: could be 'xtime'    (compiling source file FILEPATH)
or   'boost::xtime'       (compiling source file FILEPATH)

我已经读到这个问题可以与 "using namespace" 联系起来,但是在我的项目中删除所有这些语句后仍然会弹出错误。你知道除了“使用命名空间”还有什么会导致这个问题吗?

【问题讨论】:

  • 请提取minimal reproducible example,以及为编译代码而发出的确切命令。此外,提供相关工具和软件的确切版本。顺便说一句:检查 Boost 错误跟踪系统,你可能已经发现了一个错误。
  • @UlrichEckhardt 遗憾的是,在我的情况下很难给出确切的例子,因为我在巨大的商业应用程序中不断遇到这个错误。我知道我链接的来源有点差,所以我可能不得不自己处理。无论如何感谢您的回答。
  • FILEPATH 将成为关键信息。如果它是一个 boost 标头,您可能会在 boost include 或文件您遇到此问题的错误之后重新排序冲突的包含。如果是您自己的代码,(a) 停止使用 using namespace 和/或 (b) 限定您对 xtime 的使用。
  • @sehe 您的回答实际上解决了我的问题。 FILEPATH 是我自己的文件之一,但无论如何我都尝试重新排序包含在其中的文件并且它有效!非常感谢!

标签: c++ boost boost-asio


【解决方案1】:

正如 cmets 中提到的sehe,重新排序 FILEPATH 中的包含语句已经解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多