No such file or directory
解决方法(可以依次尝试,总有一种能最终解决问题):
方法1.退出Xcode,然后从finder里面进入~/Library/Developer/Xcode/DerivedData 删掉里面所有的内容,然后重启Xcode试试看
方法2.上面的操作也可以直接在Xcode的organizer中完成,在organizer里面切换到projects,然后delete掉derived data
在target设置中删掉Prefix Header的值,重启Xcode试试看
最后恢复Prefix Header的设置
方法3:
还是在Xcode里面
项目-targets-build phases,
然后从copy bundle resources里面删掉红色的错误资源文件
No such file or directory
问题描述
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)
当拷贝文件到工程里的时候,若不注意勾选"Add to Target",运行时会报如下类似的错误
解决方法:
先点击方案(左边列表,点击方案的图示)
选择target
选择页签Build Phases
Compile Source
如果没展开的话先展开
向下找加号,点击加号,将这个target需要的.m档案的头文件都加入
(如果只有一个 就把左右的.h档案都加入)
Undefined symbols for architecture armv7s
armv7s是IOS框架指令集,下面列举了IOS的硬件适配对应关系:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5
一般真机测试时,如果报armv7s错误,一般都是因为armv7s指令集是打开的,而之前一些引用库都是使用armv7s之前的指令集编译的(当这些引用的外部库使用armv7s指令集编译后,就不会出现该问题)。
解决办法如下1,2都可以:
1,[去掉armv7s指令集支持]xcode-->"Build Settings"-->"Valid Architectures"中把armv7s去掉(可能使程序无法适配iPhone5)。
2,[兼容armv7s]PROJECT-Build Setting,然后把Build Active Architecture Only的值设置为Yes。