"std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const"问题的解决办法

使用Cocos2d-x 3.6版本创建项目并尝试编译时遇到多个链接错误,涉及std命名空间下的多个函数未定义。通过添加libstdc++.6.0.9.dylib库成功解决了这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用cocos2d-x 3.6版本创建了一个新的工程,用xocde编译后出现了N多个链接错误,错误如下:


Undefined symbols for architecture x86_64:

  "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:

      umeng::Json::valueToQuotedString(char const*) in libMobClickCpp.a(json_writer.o)

  "std::basic_ios<char, std::char_traits<char> >::widen(char) const", referenced from:

      umeng::Json::valueToQuotedString(char const*) in libMobClickCpp.a(json_writer.o)

  "std::ostream::operator<<(int)", referenced from:

      umeng::Json::valueToQuotedString(char const*) in libMobClickCpp.a(json_writer.o)

  "std::string::_M_leak_hard()", referenced from:

      umeng::Json::StyledWriter::writeIndent() in libMobClickCpp.a(json_writer.o)

  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:

      umeng::Json::Value::CommentInfo::setComment(char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::CZString::CZString(char const*, umeng::Json::Value::CZString::DuplicationPolicy) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::CZString::CZString(umeng::Json::Value::CZString const&) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(char const*, char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(std::string const&) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(umeng::Json::Value const&) in libMobClickCpp.a(json_value.o)

      ...

  "std::string::_Rep::_S_terminal", referenced from:

      char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in libMobClickCpp.a(json_value.o)

      char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag) in libMobClickCpp.a(json_writer.o)

  "std::string::_Rep::_S_empty_rep_storage", referenced from:

      umeng::Json::Value::CommentInfo::setComment(char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::CZString::CZString(char const*, umeng::Json::Value::CZString::DuplicationPolicy) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::CZString::CZString(umeng::Json::Value::CZString const&) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(char const*, char const*) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(std::string const&) in libMobClickCpp.a(json_value.o)

      umeng::Json::Value::Value(umeng::Json::Value const&) in libMobClickCpp.a(json_value.o)

      ...

  "std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)", referenced from:

      char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in libMobClickCpp.a(json_value.o)

      char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag) in libMobClickCpp.a(json_writer.o)

  "std::string::append(char const*, unsigned long)", referenced from:

      umeng::Json::valueToQuotedString(char const*) in libMobClickCpp.a(json_writer.o)

      umeng::Json::FastWriter::write(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::FastWriter::writeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::write(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeCommentBeforeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeCommentAfterValueOnSameLine(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      ...

  "std::string::append(std::string const&)", referenced from:

      umeng::Json::valueToQuotedString(char const*) in libMobClickCpp.a(json_writer.o)

      umeng::Json::FastWriter::writeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeCommentBeforeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeCommentAfterValueOnSameLine(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::pushValue(std::string const&) in libMobClickCpp.a(json_writer.o)

      umeng::Json::StyledWriter::writeArrayValue(umeng::Json::Value const&) in libMobClickCpp.a(json_writer.o)

..................



后面还有很多这里就贴一部分出来,给以后出现同样问题的时候提个醒。

解决办法:Build Phases->Link Binary With Libraries  然后添加:libstdc++.6.0.9.dylib ,之后问题就消失。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值