错误:命名空间' boost::asio '中的' signal_set '没有命名类型
error: ‘signal_set’ in namespace ‘boost::asio’ does not name a type
我正在研究Boost::asio库v1.47的第一个HTTP服务器示例。http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/examples.html
和我得到这个消息在编译与gcc版本4.5.2:
错误:' boost::asio '命名空间中的' signal_set '没有命名类型
我使用Jam,使用这个jamfile:
C++ = g++ ;
LINK = $(C++) ;
LINKLIBS = -lboost_system-mt -lboost_filesystem-mt ;
Main node : main.cpp server.cpp reply.cpp request_handler.cpp request_parser.cpp connection.cpp connection_manager.cpp ;
我认为代码是正确的,因为我从一开始就得到了错误,没有修改示例源,我只是注释了这行以解决先前的问题。但现在,我需要信号。
我想我把Jamfile弄乱了。
我发现了另一个与我的问题相关的问题,但它没有帮助我:当尝试使用boost::asio::signal_set
时无法编译编辑:事实上,我发现:我使用的Ubuntu只提供1.42版本的boost, boost::asio::信号还没有实现…我安装了最新版本,现在一切正常。
该错误告诉您编译器不识别标识符。当您忘记包含标头,或者您的标头版本不同且不包含该标识符时,这是一种常见的情况。
这是编译器产生的第一个错误吗?特别是,它是否抱怨它无法定位任何头文件?这可能表明头文件不在编译器正在检查的路径中,在这种情况下,您可能需要在编译行中添加-Ipath_to_boost
标志。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 修改"std::set"中用户定义类型的值
- 从具有部分专用化的boost:hana::set中提取类型失败
- 从 std::set 中提取仅移动类型
- 通过与不同类型的值进行自定义比较来查找 std::set 的元素
- 更改 std::set 以按 T 类型查找项目
- 对于构造指针类型的 std::set 是有效的
- 错误 C2679:二进制'=':找不到采用类型 'Set<ElemType>' 的右侧操作数的运算符
- C++编译器错误:ISO C++禁止声明没有类型的“set”
- 是否可以使用与 std::set 中包含的不同类型的元素来执行搜索和删除
- 在std::set/std::map中存储具有多个不同类型字段的c++对象的有效方法
- 如何返回“set”方法的子类类型
- 创建string+int set stl类型
- 如何在c++中声明带有指针类型比较器的set
- 将用户定义的类型(structs)与set等容器类一起使用