我想第一次使用boost库。使用CDT作为环境Eclipse 4.3以及编译器gcc 3.4和boost 1.53。提升asio给你你必须添加-D__USE_W32_SOCKETS到你的cygwin的编译器选项
我在浏览各个网站以查找有关如何设置提升的信息,但似乎无法正常工作。当我编译试图包括升压/ asio.hpp我得到的错误:
You must add -D__USE_W32_SOCKETS to your compiler options
不过,我不希望使用Windows套接字,我想使用POSIX,所以我真的不知道是什么错误。由于我需要该项目以后在HP-UX上运行,因此我不想访问特定于Windows的项目。如果我现在使用Windows套接字,程序以后可以轻松地移植到Unix上,或者所有的细节都封装在boost中,而且我不必在乎呢?
我使用FOREACH循环测试了一个简单的测试程序,以确认boost本身的工作原理,情况就是如此。
我也发现这个:https://svn.boost.org/trac/boost/ticket/7881所以这意味着这个问题目前不支持,或者我做错了什么?
Windows套接字API基于Berkeley套接字...您可以编写运行在两者上的代码,除了调用'WSAStartup'外,没有任何更改。当然,你应该坚持'recv'和'accept'等,而不是使用'WSARecv'或'WSAAccept'版本。 – 2013-04-29 20:22:52
这就是我目前正在做的事情。我使用cygwin的一个原因是为了保持更加真实的Unix路径。但是,如果我想使用提升,我不想得到令人讨厌的惊喜。 :)特别是我试图让它感觉舒适,从未使用过它。 – Devolus 2013-04-30 07:28:40