最近经常遇到这种编译错误:ld: symbol(s) not found for architecture x86_64
网上有许多关于这个错误的
一、有的说是缺少依赖库,有的说在Build Setting-->Linking-->Other Linker Flags添加-licucore,但是没有解决问题
二、出现这个问题的原因还有可能是项目中的静态库引起,有可能是缺少文件引用:
1.项目中含有静态库
可能是该静态库不支持在模拟器下编译,可使用真机或Generic iOS Device,一般就不会出现这个错误了
2.缺少文件引用
从错误信息的""_OBJC_CLASS_$_RollInView",referenced from:"能够看出,是缺少RollInView文件的引用;
解决方法:
在Build Phases-->Compile Sources(items)中,添加报错的.m文件,点左下角的"+",在弹出框中找到报错的.m文件,选中,add,添加缺少的文件,再编译,这个错误就消失了...
3.缺少文件
如果以上还不能解决问题,有可能是项目中缺少文件,一般是在更新代码的时候,虽然代码更新到了本地仓库,有时候还需要手动将相应的文件引入到项目工程中,同样,从""_OBJC_CLASS_$_RollInView",referenced from:"能够看出,是缺少RollInView文件,
在左侧文件列表:右键-->选择"Add Files to ...",找到缺少的文件,选中后add即可(在创建这个文件的文件夹下找该文件)