[iOS]编译报错:ld: symbol(s) not found for architecture x86_64

最近经常遇到这种编译错误:ld: symbol(s) not found for architecture x86_64

[iOS]编译报错:ld: symbol(s) not found for architecture x86_64_第1张图片

网上有许多关于这个错误的,有的说是缺少依赖库,有的说在Build Setting-->Linking-->Other Linker Flags添加-licucore,但是都没有解决问题,最后找到一个说是缺少文件的引用,缺少哪个文件?

出现这个问题的原因,有可能是项目中的静态库引起,有可能是缺少文件引用:

1.项目中含有静态库

可能是该静态库不支持在模拟器下编译,可使用真机或Generic iOS Device,一般就不会出现这个错误了;

2.缺少文件引用

从错误信息的""_OBJC_CLASS_$_FMDataBase",referenced from:"能够看出,是缺少FMDataBase文件的引用;

解决方法:

在Build Phases-->Compile Sources(items)中,添加报错的.m文件,点左下角的"+",在弹出框中找到报错的.m文件,选中,add

[iOS]编译报错:ld: symbol(s) not found for architecture x86_64_第2张图片

再编译,这个错误就消失了...

3.缺少文件

如果以上还不能解决问题,有可能是项目中缺少文件,一般是在从SVN更新代码的时候,虽然代码更新到了本地仓库,有时候还需要手动将相应的文件引入到项目工程中,同样,从""_OBJC_CLASS_$_FMDataBase",referenced from:"能够看出,是缺少FMDataBase文件,

在左侧文件列表:右键-->选择"Add Files to ...",找到缺少的文件,选中后add即可!

PS:如果找不到,可问下创建这个文件的小伙伴,把它放在哪个文件夹下面了...

[iOS]编译报错:ld: symbol(s) not found for architecture x86_64_第3张图片


你可能感兴趣的:(常见Xcode编译报错)