解决ld: symbol(s) not found for architecture x86_64报错

最近经常遇到这种编译错误: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即可(在创建这个文件的文件夹下找该文件)


你可能感兴趣的:(解决ld: symbol(s) not found for architecture x86_64报错)