【发布时间】:2015-04-15 21:26:45
【问题描述】:
我正在寻找一些库来帮助构建一个可扩展的 tcp/ip 服务器,而 Boost::ASIO 看起来很不错,可以使异步套接字 i/o 跨平台均匀工作(我们至少需要支持 OSX、Linux x86、和 Windows,可能是 Solaris,也可能是 HP-UX 和 AIX)。
管理层坚决反对在我们的产品中使用 Boost,主要是因为它“臃肿”,并且由于我们过去遇到过冲突问题,因为我们的代码与客户代码静态链接(这可能也在使用 boost,可能不是同一个版本)。
Asio 页面声称它可以在没有 boost 的情况下使用,尽管它很模糊,因为后来它还说“当使用 C++11 时...... Asio 可以独立于 Boost 使用......”,这似乎暗示它不适用于 C++03 编译器。我在想我可以在包含标题之前简单地做一个“#define asio private_asio”以避免符号冲突问题。
我刚刚在我的本地机器上测试了 VS2013,它编译了;有谁知道需要哪些特定的 C++11 功能?我需要(至少)在 Windows 上支持 VS2012/2013,在 linux 上支持 gcc 4.4(可能是 4.3),在 OSX 上支持 XCode 5.1。
我猜问题出在旧版本的 GCC 上……
【问题讨论】:
-
这非常令人困惑。该库声称是独立的,但我在其中发现了一堆用于 boost 标头的包含。我能做的最好的就是将您指向这里 think-async.com/Asio/AsioAndBoostAsio 并建议构建一个示例应用程序以使用适当的定义进行测试和查看,您可以编译一个无升压的非 C++11 示例。
-
这个answer 对一个类似的问题可能会提供一些帮助
-
管理层希望为人员提供灵活的交通解决方案。但是他们对汽车死心塌地,因为汽车是臃肿的,因为汽车带有轮子、座椅和挡风玻璃等。对不起,你的问题不是boost。
标签: c++ c++11 boost boost-asio