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) |
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) |
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 |2013-07-18 16:49 |42人阅读
今天,使用了第三方一个库,结果,出现,iOS Undefined symbols for architecture armv7 std::basic_string<char, std::char_traits<char>
注意:不是修改Build Setting里面的设置,而是添加一个libstdc++.dylib, 搞定!
- iOS工程集成支付宝错误Undefined symbols for architecture armv7
问题描述: 新工程中需要集成支付宝功能,于是咱就把支付宝的库给集成了进入然后就出现了下面这种错误了说,错误信息如下: Undefined symbols for architecture armv7: ...
- 静态库引入引起的错误解决方案,ld: warning: ignoring file ”…/XXX.a”, file was built for archive which is not the architecture being linked (armv7): “…/XXX.a” Undefined symbols for architecture armv7: "_OBJC_CLASS_$
想目中不免会引入一些静态库,可是有时加入'.a'文件后编译便会报以下错误 ld: warning: ignoring file ”…/XXX.a”, file was built for archiv ...
- Undefined symbols for architecture armv7
xcode编译过程中出现如下问题Undefined symbols for architecture armv7:... ld: symbol(s) not found for architectur ...
- Undefined symbols for architecture armv7: "_OBJC_METACLASS_$_ _OBJC_CLASS_$_ ld: symbol(s) not found for architecture armv7错误
Undefined symbols for architecture armv7: "_OBJC_METACLASS_$_MWPhotoBrowser", referenced ...
- Undefined symbols for architecture armv7错误解决方法
Undefined symbols for architecture armv7: "_OBJC_CLASS_$_BriefMainModel", referenced from: ...
- iOS 错误 undefined symbols for architecture i386
undefined symbols for architecture i386 这个错误困扰了我几个小时. 网上很多问这个问题的,回答基本上都是说在 target 里面去的 armv64 什么什么的. ...
- iOS Undefined symbols for architecture armv7:
armv6 iPhone.iPhone 3G iPod 1G.iPod 2G armv7 iPhone 3GS.iPhone 4 iPod 3G.iPod 4G.iPod 5G iPad.iPad 2 ...
- iOS模拟器:Undefined symbols for architecture x86_64
描述:为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构.但是发现工程在真机上可以编译通过但是在模拟器上却未编过. 问题解决:经研究在编译选项中再加入x86_64架构,重新编译 ...
- iOS :undefined symbols for architecture x86_64
转自:http://www.th7.cn/Program/IOS/201408/268371.shtml 问题描述:为了适配iPhone 5s的64位处理器,在编译选项中加入了arm64架构.但是发现 ...
随机推荐
- FASTDFS 5X安装
FASTDFS 5X安装 http://www.wingdevops.com/?p=603 流行的开源分布式文件系统有很多,FastDFS 是国人在mogileFS的基础上进行改进的key-value ...
- John(博弈)
Description Little John is playing very funny game with his younger brother. There is one big box ...
- SVN/GIT源代码泄露
造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...
- SQL语句中"where 1=1"和"where 1=0"的作用
where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句. 一.不用where 1=1 在多条件查询中的困扰 举个例子,如果您做查询页面,并且,可查询的选项有 ...
- android自定义控件之模仿优酷菜单
去年的优酷HD版有过这样一种菜单,如下图: 应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋 ...
- Ⅶ.AngularJS的点点滴滴-- 事件
事件(和js一样有冒泡和捕获) <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2 ...
- VC++ 获取windows系统的版本类型
vc中获取windows版本信息,一般是调用GetVersionEx 这个API函数来获取的,这个API需要OSVERSIONINFOEX 这个结构体作为参数,OSVERSIONINFOEX 的对应的 ...
- centos6.7 install chrome
1.yum仓库 (如果用rpm包安装 可以忽略此步) vim /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrom ...
- innosetup 安装静默安装msi,指定安装路径的方法
自己看了很久帮助,分号的用法确实不太好用,湿了这个东东估计很多人会用到,发出来给大家参考. Filename: "{app}/msiexec.exe";Parameters: &q ...
- DropDownList绑定多个字段值
发觉这个问题还是挺多人问的,简单写几个例子: 假设现有1张表名为:XUDAXIA , 该表里有2个字段: NAME , GENDER 达到效果: 将这2个字段绑定到DropDownList的Lis ...