在cygwin上编译Boost asio会出现很多错误
Compiling Boost asio on cygwin occurs many errors
我在cygwin上训练官方Boost asio示例(timer.cpp)。我想在不创建任何.lib
或.dll
的情况下编译它,并最大限度地减少开源分发的依赖。但是当我只复制asio
和config
目录以及asio.hpp
和config.hpp
文件到libs
目录时(根据官方手册,Boost asio只需要Boost config。参考Boost (io dependencies),并使用g++ timer.cpp -Ilibs -o timer
编译示例,出现没有boost/version.hpp
的错误。
我复制省略的头文件并编译它…类似的错误再次发生。和副本……发生……复制……发生……没完没了。因此,我将所有Boost库复制到libs
中,并对其进行编译。但是我混淆了很多很多的错误和警告。尽管我在#include <boost/asio.hpp>
之前声明#define __USE_W32_SOCKETS
和#define _WIN32_WINNT 0x0603
(我在Windows 8.1上工作)。以下是最终的编译输出。我累了。
In file included from /usr/include/w32api/winsock2.h:56:0,
from libs/boost/asio/detail/socket_types.hpp:38,
from libs/boost/asio/detail/impl/winsock_init.ipp:22,
from libs/boost/asio/detail/winsock_init.hpp:125,
from libs/boost/asio/io_service.hpp:28,
from libs/boost/asio/basic_io_object.hpp:19,
from libs/boost/asio/basic_socket.hpp:20,
from libs/boost/asio/basic_datagram_socket.hpp:20,
from libs/boost/asio.hpp:21,
from src/main.cpp:4:
/usr/include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types. This can cause runtime problems with W32 sockets" [-Wcpp]
#warning "fd_set and associated macros have been defined in sys/types.
^
In file included from libs/boost/asio/detail/impl/posix_tss_ptr.ipp:24:0,
from libs/boost/asio/detail/posix_tss_ptr.hpp:76,
from libs/boost/asio/detail/tss_ptr.hpp:27,
from libs/boost/asio/detail/call_stack.hpp:20,
from libs/boost/asio/impl/handler_alloc_hook.ipp:19,
from libs/boost/asio/handler_alloc_hook.hpp:80,
from libs/boost/asio/detail/handler_alloc_helpers.hpp:21,
from libs/boost/asio/detail/bind_handler.hpp:19,
from libs/boost/asio/detail/wrapped_handler.hpp:18,
from libs/boost/asio/io_service.hpp:24,
from libs/boost/asio/basic_io_object.hpp:19,
from libs/boost/asio/basic_socket.hpp:20,
from libs/boost/asio/basic_datagram_socket.hpp:20,
from libs/boost/asio.hpp:21,
from src/main.cpp:4:
libs/boost/asio/error.hpp:87:31: error: a function call cannot appear in a constant-expression
BOOST_ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE),
简介:
Q1。Boost asio需要一些其他Boost库,不仅仅是Boost config,但不是全部(我猜)。如何检查Boost asio的库依赖关系?
Q2。在cygwin上,用g++编译Boost asio定时器示例会出现很多错误和警告。但我是按照官方手册说的。我该怎么修理它?
谢谢。
根据Boost入门指南,必须构建Timer ,并且使用您的代码的用户也需要安装boost(您的代码或项目不必担心如何安装boost,只需指出它是需要的)。
您可以使用静态版本来减少外部依赖。我从来没有在Cygwin中这样做过,但是在MinGW中,它应该是等效的。
进入boost根目录,打开cmd.exe。
包含编译器可执行文件的bin/
文件夹必须在您的路径中。如果不是,请先输入:
SET PATH=%PATH%;<path to your cygwin bin folder here>
现在类型:bootstrap gcc
然后,当bootstrap
完成时:
b2 toolset=gcc variant=debug,release link=static threading=multi
- 瓦尔格林德错误来自 boost::asio
- 在网络套接字计时器滴答后增加asio短读错误
- 错误: C1083: 无法打开包含文件:"boost/asio.hpp": 没有此类文件或目录
- 使用 Boost ASIO 和 SSL 时出现"Wrong Version Number"错误 (C++)
- 尝试关闭 SSL 套接字时使用升压 asio 1.64 的分段错误 (SIGSEGV)
- 提升 asio 回声服务器示例中的黑客或错误?
- C++ Boost::asio x64 async_send失败,出现错误 10014 (WSAEFAULT)
- boost::asio async_accept总是发生错误,error_code.value() 是 22,这意味着参
- 编译Boost ASIO示例时出现错误
- 加速 ASIO 系统错误 995:I/O 操作已中止
- 尝试重新连接到服务器时获取错误提升 asio 连接超时
- 提升 ASIO 绑定:错误的文件描述符
- boost :: Asio连接错误的界面
- 在thread.hpp上boost asio udp 螺纹= get_id()错误
- 将 Boost Asio 与 ZeroMQ 集成,文件描述符错误?
- 在CLion中链接Boost.Asio时Static_initialization_and_distruction错误
- 为什么这C++ASIO,当执行HTTP / SSL请求时,BEAST服务器会进入错误状态
- 编译器错误boost :: asio ::占位符:: boost v1.69的错误
- boost asio错误类别为空
- Boost Asio udp 解析器返回错误的端点迭代器