c – 编译错误:命名空间’std’中的”function’未命名模板类型“

c – 编译错误:命名空间’std’中的”function’未命名模板类型“,第1张

概述我正在尝试使用 libtins库来嗅探我的网络流量.所以我下载了tar.gz库,并成功完成了手册中提到的所有库编译步骤. 现在,我正在尝试编译我的第一个示例程序: 1 #include <iostream> 2 #include <tins/tins.h> 3 4 using namespace Tins; 5 6 bool callback(const PDU &pdu) 我正在尝试使用 libtins库来嗅探我的网络流量.所以我下载了tar.gz库,并成功完成了手册中提到的所有库编译步骤.

现在,我正在尝试编译我的第一个示例程序:

1 #include <iostream>  2 #include <tins/tins.h>  3   4 using namespace Tins;  5   6 bool callback(const PDU &pdu) {  7     const IP &ip = pdu.rfind_pdu<IP>(); // Find the IP layer  8     const TCP &tcp = pdu.rfind_pdu<TCP>(); // Find the TCP layer  9     std::cout << ip.src_addr() << ':' << tcp.sport() << " -> " 10               << ip.dst_addr() << ':' << tcp.dport() << std::endl; 11     return true; 12 } 13  14 int main() { 15     Sniffer("eth0").sniff_loop(callback); 16 }

当我想编译它时,我面临以下错误:

me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$g++ main.cpp -ltinsIn file included from /usr/local/include/tins/tins.h:60:0,from main.cpp:2:/usr/local/include/tins/crypto.h:297:18: error: ‘function’ in namespace ‘std’ does not name a template type     typedef std::function<voID(const std::string&,^/usr/local/include/tins/crypto.h:308:18: error: ‘function’ in namespace ‘std’ does not name a template type     typedef std::function<voID(const std::string&,^/usr/local/include/tins/crypto.h:401:44: error: ‘handshake_captured_callback_type’ does not name a type     voID handshake_captured_callback(const handshake_captured_callback_type& callback);                                            ^/usr/local/include/tins/crypto.h:412:34: error: ‘ap_found_callback_type’ does not name a type     voID ap_found_callback(const ap_found_callback_type& callback);                                  ^/usr/local/include/tins/crypto.h:445:9: error: ‘handshake_captured_callback_type’ does not name a type         handshake_captured_callback_type handshake_captured_callback_;         ^/usr/local/include/tins/crypto.h:446:9: error: ‘ap_found_callback_type’ does not name a type         ap_found_callback_type ap_found_callback_;         ^me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$

怎么了?

我的编译器版本:

me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$g++ --versiong++ (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609copyright (C) 2015 Free Software Foundation,Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABIliTY or fitness FOR A PARTIculaR PURPOSE.me@me-MS-7693:~/Desktop/Workspace/cpp_libtins$
解决方法 由于您的GCC早于6.0,您需要传递-std = c 11开关,otherwise it is in C++03 mode.C 03没有std :: function. 总结

以上是内存溢出为你收集整理的c – 编译错误:命名空间’std’中的”function’未命名模板类型“全部内容,希望文章能够帮你解决c – 编译错误:命名空间’std’中的”function’未命名模板类型“所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存