gpt4 book ai didi

c++ - 编译器在 Boost::ASIO 写入和 unistd 写入之间混合

转载 作者:行者123 更新时间:2023-11-28 06:59:54 29 4
gpt4 key购买 nike

我正在尝试使用 Boost 的 b2 工具编译我的代码。我的代码是用 C++ 编写的,并且包含一些来自 C 库的函数调用,例如 。

在编译阶段,编译器混合了两个函数,一个是 unistd 的写入函数,另一个是 Boost 库的写入函数。

/home/ha/MIH/boost_1_49_0/boost/asio/impl/write.hpp:79:77: instantiated from ‘std::size_t boost::asio::write(SyncWriteStream&, const ConstBufferSequence&, CompletionCondition) [with SyncWriteStream = int, ConstBufferSequence = message*, CompletionCondition = long unsigned int, std::size_t = long unsigned int]’ socketmid.cpp:152:61: instantiated from here

错误发生在 unistid.h 中使用的 write 函数中,如下所示:

if (write(peer_fd, &confirm, sizeof (struct message)) < 0)
{
......
}

那么如何解决这个问题呢?因为据我所知,我不能为 C 函数使用命名空间。

最佳答案

您似乎是从 C++ 代码中调用它(否则 Boost Asio 将无法正常工作),因此您应该能够使用完全限定的命名空间,例如boost::asio::write::write

关于c++ - 编译器在 Boost::ASIO 写入和 unistd 写入之间混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22638688/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com