“xtime: ambiguous symbol”错误,包括 <boost/asio.hpp> [关闭]

Posted

技术标签:

【中文标题】“xtime: ambiguous symbol”错误,包括 <boost/asio.hpp> [关闭]【英文标题】:"xtime: ambiguous symbol" error, when including <boost/asio.hpp> [closed] 【发布时间】: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 是我自己的文件之一,但无论如何我都尝试重新排序包含在其中的文件并且它有效!非常感谢! 【参考方案1】:

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

【讨论】:

以上是关于“xtime: ambiguous symbol”错误,包括 <boost/asio.hpp> [关闭]的主要内容,如果未能解决你的问题,请参考以下文章