[汇]编译错误汇总

这篇博客总结了在Xcode开发过程中遇到的各种编译错误,包括本地化字符串文件不能使用、未引入库文件、SIGABRT信号、权限访问崩溃、PNG图片格式错误、JSON解析错误等,并给出了详细的解决办法,例如清理DerivedData、添加Info.plist配置、修改项目文件结构等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、"std::ios_base::Init::~Init()", referenced from

出现这样的编译问题,是需要再加进libstdc++.dylib和libstdc++.6.dylib(为6.1使用,xcode5以后默认complier也可以编译通过)

2、apple Mach-o Linker error通常是因为compile source中有相同的.m文件

3、如果在真机中进行测试时出现failed to get the task for process,有可能是证书出了问题。

4、如果出现expect a type的错误,可能出现了在.h文件中的循环引用。

5、以后不能同时有两个一样的.m文件在编译,这样会报linker command failed with exit code 1 (use -vto see invocation)这个错误

(另外:如果代码中混合有C或者C++代码,那么,也不可以在两个不同名称的mm文件中进行声明或者引用,因为也会导致这个错误的发生)。

6. 编译器提示类似file is universal but does not contain a(n) armv6 slice for architecture armv6的错误。可能是您的XCode版本过低,推荐使用4.2以上的版本,将XCode的Build Settings中的Architectures设置成arm7。

7. XCode提示有类似C++语法的错误。可能是您在调用接口时没有设置成OC与C++混编模式(具体做法为将调用接口的实现文件改为.mm的后缀)。

8. 提示类似ld: 3 duplicate symbols for architecture i386(arm7)的错误。可能是您用了与SDK相同的第三方库,解决方法是删除引起错误的第三方法库的实现文件(.m文件)。

9. 编译器提示类似file is universal (2 slices) but does not contain a(n) armv7s slice:…… for architecture armv7s的错误。是因为此版本的库还不支持arm7s的环境,将Build Settings项中的Valid ArchiteCtures中的arm7s删除即可解决。

10. 编译器提示类似Duplicate symbol _NN_Decode in /Users/…/libPPUserPayKit.a(UPPayRsa_nn.o)  for architecture armv7或Command /Developer/…/bin/llvm-g++-4.2 failed with exit code 1的错误。则是因为C++混编模式引起的,您可以将Build Settings 设置项里面的Other Linker Flags设置成空即可。

本地化字符串文件不能使用。

【1.】清理建文件夹,删除里面的一切DerivedData( 位于“/Users/个人PC用户名/Library/Developer/Xcode/DerivedData”下的缓存文件占了很大的内存空间),删除里面的程序,重新启动Xcode,重建工程。


DerivedData文件夹


【2.】去项目目录里,手动地创建两 infoplist.strings 的文件,第一次在 en.lproj文件夹和第二次在 fr.lproj文件夹。

 

 

报错
 
未引入库文件( .m文件)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值