Boost asio Tutorial
例子Timer.5 - Synchronising handlers in multithreaded programs编译错误
作者:smartvessel@gmail.com
环境:cygwin+boost1.41.0
报错信息:
make all
Building file: ../src/boosthello.cpp
Invoking: Cygwin C++ Compiler
g++ -D__USE_W32_SOCKETS -D_WIN32_WINNT -I"D:\cygwin\usr\local\include\boost" -O0 -g3 -c -fmessage-length=0 -MMD -MP -MF"src/boosthello.d" -MT"src/boosthello.d" -o"src/boosthello.o" "../src/boosthello.cpp"
In file included from /usr/local/include/boost/thread/future.hpp:12,
from /usr/local/include/boost/thread.hpp:24,
from ../src/boosthello.cpp:9:
/usr/local/include/boost/exception_ptr.hpp:43: error: looser throw specifier for `virtual boost::exception_ptr::~exception_ptr()'
/usr/local/include/boost/exception/detail/exception_ptr_base.hpp:28: error: overriding `virtual boost::exception_detail::exception_ptr_base::~exception_ptr_base() throw ()'
make: *** [src/boosthello.o] Error 1
这是个make的报错,涉及exception_ptr.hpp和exception_ptr_base.hpp两个文件,于两个析构函数有关,而且析构函数是虚函数。
一番调查发现exception_ptr_base.hpp中class exception_ptr_base定义了虚拟析构函数,而exception_ptr.hpp中class exception_ptr继承之exception_ptr_base,但是没有实现其虚拟析构函数。
因此在exception_ptr中添加
~exception_ptr()throw()
{
}
这样就可以解决错误,这应该是1.41.0的一个bug。
分享到:
相关推荐
翻译了“Overview”、“Using Boost.Asio”、“Tutorial”、“Examples”的完整章节。 [“Networking TS compatibility”](https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/net_ts.html)的第二个表格未...
Boost.Asio C++ Network Programming Cookbook.pdf Boost.Asio C++ Network Programming Cookbook.pdf
Boost.Asio.C++.Network.Programming.,想了解的可以看看
Asynchronous IO with Boost.Asio - Michael Caisse - CppCon 2016.pdf
boost asio网络编程入门教程,可以作为学习参考
boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...
asio-devel安装包,el6,64位的。属于依赖包,建议收藏
boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...
boost-1.70.0.tar.gz boostorg-any-boost-1.70.0.tar.gz boostorg-array-boost-1.70.0.tar.gz boostorg-asio-boost-1.70.0.tar.gz boostorg-assert-boost-1.70.0.tar.gz boostorg-assign-boost-1.70.0.tar.gz ...
使用例子程序,包括多播,同步,异步,服务器回显,等多个用asio封装的Socket例子
最新版本,最新排版
Boost.Asio.C++.Network.Programming 2013
Boost.Asio C++ Network Programming 书的翻译 此版本的书无目录失效BUG 并且带全书源代码 方便学习使用
Boost.Asio provides an excellent abstraction over it, making sure that with a minimal amount of coding, you can create beautiful client-server applications and have tons of fun doing it. And it ...
boost::asio编程-同步TCP boost.asio库是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型。 boost.asio库支持TCP、UDP、ICMP通信协议。 下面介绍同步TCP模式: 大家好!我是...
boost asio chat client
asio的库封装文件内包含生成 makefile.in makefile.am自行生成使用,跨平台使用g++编译或支持
Boost.Asio 对网络编程做了一个极好的抽 象,从而保证只需要少量的代码就可以实现一个优雅的客户端/服务端软件。在实现 的过程中,它能让你体会到极大的乐趣。而且更为有益的是:Boost.Asio 还包含了 一些非网络的...
详细介绍了Boost库中Asio组件,面向网络编程的各个方面技术细节,带有许多实例讲解。
boost asio在Ubuntu下的例子,包含server,client及makefile。 使用方法: 1. 在Ubuntu下安装boost, sudo apt-get install libboost-all-dev 2. 解压代码,然后make all 3. ./server, ./client即可