【发布时间】: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