zorovip 发表于 2014-3-24 11:40:13

编译出错:Undefined symbols std::_List_node_base::hook

编译SDK包里面你们提供的源代码工程没有问题,但是编译自己的工程就出错,编译不通过,出错信息下问题:
Undefined symbols for architecture i386:
"std::_List_node_base::hook(std::_List_node_base*)", referenced from:
      CControlCenter::LeaveRoom(int) in libanychatcore.a(ControlCenter.o)
      CControlCenter::GetOnlineUser(std::list<unsigned int, std::allocator<unsigned int> >*) in libanychatcore.a(ControlCenter.o)
      CControlCenter::RegisterBitrateStatistItem(unsigned int, unsigned int, unsigned int) in libanychatcore.a(ControlCenter.o)
      CControlCenter::OnAppChangeP2PPolitic(SDK_P2P_POLITIC) in libanychatcore.a(ControlCenter.o)
      CSubscriptHelper::OnSubscriptOtherUserStream(unsigned int, unsigned int, unsigned int, signed char) in libanychatcore.a(ControlCenter.o)
      CNetworkCenter::SendBuf(unsigned int, char*, unsigned int, unsigned int, unsigned int, unsigned int) in libanychatcore.a(NetworkCenter.o)
      CBufferTransMgr::OnMediaTransBufReSend(GV_MEDIA_PACK_TRANSBUF_RESEND_STRUCT*) in libanychatcore.a(buffertransmgr.o)
      ...
"std::_List_node_base::unhook()", referenced from:
      CControlCenter::LeaveRoom(int) in libanychatcore.a(ControlCenter.o)
      CControlCenter::RegisterBitrateStatistItem(unsigned int, unsigned int, unsigned int) in libanychatcore.a(ControlCenter.o)
      CControlCenter::OnAppChangeP2PPolitic(SDK_P2P_POLITIC) in libanychatcore.a(ControlCenter.o)
      CSubscriptHelper::ResetStatus() in libanychatcore.a(ControlCenter.o)
      CSubscriptHelper::CancelUserAllSubScript(unsigned int) in libanychatcore.a(ControlCenter.o)
      CSubscriptHelper::OnSubscriptOtherUserStream(unsigned int, unsigned int, unsigned int, signed char) in libanychatcore.a(ControlCenter.o)
      CNetworkCenter::OnSocketWrite(unsigned int, unsigned int) in libanychatcore.a(NetworkCenter.o)
      ...
怎么办?

admin 发表于 2014-3-24 11:51:40

您好,根据您提供的信息判断编译已经通过,是在链接(Link)过程中出错,建议通过如下两个步骤来解决:
1、Build Settings-->Apple LLVM 5.1 - Language - C++ --> C++ Standard Library,设置为:libstdc++(GNU C++ standard library)

然后Clean工程,然后重新Build,看是否可以成功。

2、Build Phases --> Link Binary With Libraries里面增加库:libstdc++.dylib

Clean工程,然后重新Build,应该可以Build成功。

admin 发表于 2014-3-24 11:52:10

如果按上面的方法设置,问题依然存在,则可尝试:在“Project-->Build Phases-->Link Binary With Libraryes”里面添加库“libstdc++.6.dylib”,如下图所示:

http://bbs.anychat.cn/data/attachment/forum/201407/08/092224oeg8byqk9epjjgsl.jpg

详情可参考:http://bbs.anychat.cn/forum.php? ... =806&extra=page%3D1



zorovip 发表于 2014-3-24 11:56:36

你好,谢谢版主,问题已经解决,太感谢了!
页: [1]
查看完整版本: 编译出错:Undefined symbols std::_List_node_base::hook