【发布时间】:2014-05-03 12:55:17
【问题描述】:
我正在尝试使用 Boost 中的 b2 工具编译我的代码。我的代码是用 C++ 编写的,并且包含来自 C 库之类的一些函数调用。
在编译阶段,编译器会在两个函数之间混合,写入函数是 unistd 的一部分,而写入函数是 Boost 库的一部分。
/home/ha/MIH/boost_1_49_0/boost/asio/impl/write.hpp:79:77: 从 '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: 从这里实例化
错误发生在 unistid.h 中使用的 write 函数中,如下所示:
if (write(peer_fd, &confirm, sizeof (struct message)) < 0)
{
......
}
那么我该如何解决这个问题呢?因为据我所知,我不能为 C 函数使用命名空间。
【问题讨论】: