warning: RTTI symbol not found for class ‘webrtc::RtpHeaderParserImpl‘

 

b) p rtp_header_parser_
$9 = std::unique_ptr = {get() = 0x7f9a08002110}
(gdb) p *rtp_header_parser_
warning: RTTI symbol not found for class 'webrtc::RtpHeaderParserImpl'
$10 = warning: RTTI symbol not found for class 'webrtc::RtpHeaderParserImpl'
{_vptr.RtpHeaderParser = 0x7f9a06daffc8 }
(gdb) p *rtp_header_parser_.get()
warning: RTTI symbol not found for class 'webrtc::RtpHeaderParserImpl'
$11 = warning: RTTI symbol not found for class 'webrtc::RtpHeaderParserImpl'
{_vptr.RtpHeaderParser = 0x7f9a06daffc8 }
(gdb) 
 

不要使用-f nortti 编译

 

https://www.it1352.com/785762.html

遇到对象cool_cout时会重复警告。我该如何解决?当然,使用这些代码的程序工作,我没有问题。警告不应该被忽略,并且有关于必须获得的RTTI符号的知识。 (我不能用-f nortti编译,那么可执行文件会抱怨rtti应该启用iostreams)

关心的是编译器,这是实际创建程序的原因。最终用户不应该使用调试器,它不会影响你的二进制文件本身。

 


 

虽然gdb有时会发现问题,但其中的许多警告是因为gdb消耗调试符号,并且消费者(gdb)具有错误和防卫。通常他们只是减少gdb的功能。 
在这种情况下,调试器中可用的类更少。它使调试更加困难,但不会损害应用程序本身。


 

您有几个选择来处理这个错误。


 


  1. 忽略gdb中的警告并继续使用。
  2. 获取gdb的源代码并尝试找到问题并提交补丁。我确信它会受到欢迎。
  3. 使用不同的调试器。 (尽管我看到所有的替代品都是付费产品。) 改写程序以不使用任何模板。 gdb模板处理是存在大部分符号查找问题的地方。

 

 

你可能感兴趣的:(c/c++)