zoukankan      html  css  js  c++  java
  • iOS出现 Undefined symbols for architecture armv7 std::basic_string<char, std::char_traits<char>

    Undefined symbols for architecture i386:
    “_OBJC_CLASS_$_XXX”, referenced from:
    objc-class-ref in XXX

    ld: symbol(s) not found for architecture i386

    clang: error: linker command failed with exit code 1 (use -v to see invocation)

     
    如果真机调试就是 undefined symbols for architecture armv7错误!
    发生这种错误通常是project.pbxproj这个文件引起的,尤其在多人合作开发的时候,svn提交不规范可能导致project.pbxproj发生错误,导致文件的引用不在project.pbxproj文件中。
    xcode项目import文件会根据project.pbxproj来查找,查找不到文件的引用则会有上述的错误。
     
    解决方法点击工程,在主界面中点击Build Phases,根据提示信息“XXX”来判断缺少什么文件,一般如果缺少自定义的文件,XXX会是缺少的类名,那么就在Complie Sources中加入该文件。如果缺少类库,则在Link Binary With Libraries中加入该类库。
     
    Undefined symbols for architecture i386:
    02   "TextureMan::LoadTexture(std::__1::basic_string, std::__1::allocator > const&, int, bool)", referenced from:
    03       tolua_gameinterface_TextureMan_loadTexture00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    04   "SoundManager::BgndMusicPlay(std::__1::basic_string, std::__1::allocator > const&, bool)", referenced from:
    05       tolua_gameinterface_SoundManager_BgndMusicPlay00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    06   "SoundManager::BgndMusicStop(std::__1::basic_string, std::__1::allocator > const&, bool)", referenced from:
    07       tolua_gameinterface_SoundManager_BgndMusicStop00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    08   "Font::LoadFont(std::__1::basic_string, std::__1::allocator > const&)", referenced from:
    09       tolua_gameinterface_Font_loadFont00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    10   "System::MakeDocumentPath(std::__1::basic_string, std::__1::allocator > const&) const", referenced from:
    11       tolua_gameinterface_System_makeDocumentPath00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    12   "System::MakeResourcePath(std::__1::basic_string, std::__1::allocator > const&) const", referenced from:
    13       ExUnit::LogicThread::Run() in libCoreClientiOS.a(logicthread.o)
    14       tolua_gameinterface_System_makeResourcePath00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    15   "std::__1::__vector_base_common::__throw_length_error() const", referenced from:
    16       void std::__1::vector >::__push_back_slow_path(float const&&&) inlibCoreClientiOS.a(tolua_gameinterface.o)
    17       void std::__1::vector, std::__1::allocator > >::__push_back_slow_path const&>(std::__1::basic_string, std::__1::allocator > const&&&) inlibCoreClientiOS.a(tolua_gameinterface.o)
    18       void std::__1::vector >::__push_back_slow_path(int const&&&) inlibCoreClientiOS.a(tolua_gameinterface.o)
    19   "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
    20       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    21   "std::__1::ios_base::getloc() const", referenced from:
    22       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    23   "std::__1::basic_string, std::__1::allocator >::__init(char const*, unsigned long)", referenced from:
    24       _l_registercallback in libCoreClientiOS.a(logicthread.o)
    25       _luapanic in libCoreClientiOS.a(logicthread.o)
    26       ExUnit::LogicThread::Run() in libCoreClientiOS.a(logicthread.o)
    27       ExUnit::LogicThread::HandleError() in libCoreClientiOS.a(logicthread.o)
    28       ExUnit::LogicThread::CallVA(char const*, char const*, ...) inlibCoreClientiOS.a(logicthread.o)
    29       ExUnit::LogicThread::RemoveCallback(char const*) inlibCoreClientiOS.a(logicthread.o)
    30       ExUnit::LogicThread::SetCallback(char const*, int) inlibCoreClientiOS.a(logicthread.o)
    31       ...
    32   "std::__1::basic_string, std::__1::allocator >::assign(char const*)", referenced from:
    33       System::SetEngineScriptPath(char const*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    34   "std::__1::basic_string, std::__1::allocator >::basic_string(std::__1::basic_string, std::__1::allocator > const&)", referenced from:
    35       tolua_gameinterface_vector_string___geti00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    36       tolua_gameinterface_vector_string___geti01(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    37       tolua_gameinterface_vector_string__push_back00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    38       void std::__1::vector, std::__1::allocator > >::__push_back_slow_path const&>(std::__1::basic_string, std::__1::allocator > const&&&) inlibCoreClientiOS.a(tolua_gameinterface.o)
    39   "std::__1::basic_string, std::__1::allocator >::~basic_string()", referenced from:
    40       _l_registercallback in libCoreClientiOS.a(logicthread.o)
    41       _luapanic in libCoreClientiOS.a(logicthread.o)
    42       ExUnit::LogicThread::Run() in libCoreClientiOS.a(logicthread.o)
    43       ExUnit::LogicThread::HandleError() in libCoreClientiOS.a(logicthread.o)
    44       ExUnit::LogicThread::CallVA(char const*, char const*, ...) inlibCoreClientiOS.a(logicthread.o)
    45       ExUnit::LogicThread::RemoveCallback(char const*) inlibCoreClientiOS.a(logicthread.o)
    46       ExUnit::LogicThread::SetCallback(char const*, int) inlibCoreClientiOS.a(logicthread.o)
    47       ...
    48   "std::__1::basic_string, std::__1::allocator >::operator=(std::__1::basic_string, std::__1::allocator > const&)", referenced from:
    49       tolua_gameinterface_vector_string___seti00(lua_State*) inlibCoreClientiOS.a(tolua_gameinterface.o)
    50   "std::__1::basic_ostream >::put(char)", referenced from:
    51       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    52   "std::__1::basic_ostream >::flush()", referenced from:
    53       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    54   "std::__1::basic_ostream >::sentry::sentry(std::__1::basic_ostream >&)", referenced from:
    55       std::__1::basic_ostream >& std::__1::operator<<<std::__1::char_traits >(std::__1::basic_ostream >&, char const*) in libCoreClientiOS.a(logicthread.o)
    56   "std::__1::basic_ostream >::sentry::~sentry()", referenced from:
    57       std::__1::basic_ostream >& std::__1::operator<<<std::__1::char_traits >(std::__1::basic_ostream >&, char const*) in libCoreClientiOS.a(logicthread.o)
    58   "std::__1::cerr", referenced from:
    59       ExUnit::LogicThread::Run() in libCoreClientiOS.a(logicthread.o)
    60       ExUnit::LogicThread::ContactTriggered(b2Contact*) inlibCoreClientiOS.a(logicthread.o)
    61       ExUnit::LogicThread::SensorTriggered(b2Contact*) inlibCoreClientiOS.a(logicthread.o)
    62   "std::__1::ctype::id", referenced from:
    63       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    64   "std::__1::locale::~locale()", referenced from:
    65       std::__1::basic_ostream >& std::__1::endl >(std::__1::basic_ostream >&) inlibCoreClientiOS.a(logicthread.o)
    66   "std::__1::ios_base::__set_badbit_and_consider_rethrow()", referenced from:
    67       std::__1::basic_ostream >& std::__1::operator<<<std::__1::char_traits >(std::__1::basic_ostream >&, char const*) in libCoreClientiOS.a(logicthread.o)
    68   "std::__1::ios_base::clear(unsigned int)", referenced from:
    69       std::__1::basic_ostream >& std::__1::operator<<<std::__1::char_traits >(std::__1::basic_ostream >&, char const*) in libCoreClientiOS.a(logicthread.o)
    70 ld: symbol(s) not found for architecture i386
    71 clang: error: linker command failed with exit code 1 (use -v to see invocation)
    看着就非常复杂!
    有这么多的link STL的错误。
    其实,就是你编译静态库的时候使用不同版本的标准库, C++ Standard Library
     
    那么如何fix掉这个issue呢?看下面这两张图!
    如果你这两个在编译静态库和在使用静态库的app中设置的是一样的,应该就可以解决掉这个问题!
     
    事实上,compiler default 足够了。
     

    iOS出现 Undefined symbols for architecture armv7 std::basic_string<char, std::char_traits<char>

    分类: iOS |2013-07-18 16:49 |42人阅读

    今天,使用了第三方一个库,结果,出现,iOS Undefined symbols for architecture armv7 std::basic_string<char, std::char_traits<char>

    注意:不是修改Build Setting里面的设置,而是添加一个libstdc++.dylib, 搞定!

  • 相关阅读:
    在React中使用Redux数据流
    开发中经常遇到的一些css样式问题
    记录一下CSS outline-width 属性
    使用git stash命令保存和恢复进度
    一分钟搭建好webpack通用坏境
    二维码生成(QRCode.js)
    IE6浏览器有哪些常见的bug,缺陷或者与标准不一致的地方,如何解决
    如何进行网站性能优化
    JavaScript深拷贝与浅拷贝的理解
    新问题: 两个样式对同一个元素操作,为什么最新的样式没有起作用?(已解决)
  • 原文地址:https://www.cnblogs.com/wudan7/p/3808601.html
Copyright © 2011-2022 走看看