Undefined symbols for architecture i386:ld: symbol(s) not found for architecture i386

昨天项目还好好的,今天一编译竟然报错:

Undefined symbols for architecture i386:
  "_KCCategorySentence", referenced from:
      ___58-[EvaSettingController tableView:didSelectRowAtIndexPath:]_block_invoke_2 in EvaSettingController.o
      -[XFParams setDefault] in XFParams.o
      ___58-[EvaSettingController tableView:didSelectRowAtIndexPath:]_block_invoke_2 in EvaSettingController.o
      -[XFParams setDefault] in XFParams.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

也是醉了,因为没有改动过项目,所以很诧异.

解决方法如下:

1.根据报的错误来看,初步判断是在[EvaSettingController tableView:didSelectRowAtIndexPath:]这个方法中出现的错误.

2.进到方法中,找到_KCCategorySentence这个变量,并没有什么问题.

3.来到定义变量的位置,真是坑爹啊!

手误插入了一个字母,欲哭无泪,这能怪谁啊!!!

总结:

当遇到这类错误时,可以根据错误提示,先进到方法中,再找到变量,一步一步筛选排查错误.

时间: 2024-10-15 04:38:58

Undefined symbols for architecture i386:ld: symbol(s) not found for architecture i386的相关文章

iOS 编译含C++代码出现ld: symbol(s) not found for architecture i386错误之解决(转载)

最近项目需要搭建自己的IM服务器,在快速配置好Openfire之后,开始研究使用gloox开发XMPP客户端实现通信, 先下载gloox源码,然后./configure,make ,sudo make install,在/usr/local/下找到头文件夹和静态库,加到项目中,然后加入openssl库,编写测试代码,编译,报错:XXX not being for architecture i386,感觉是gloox静态库有问题(排除了网上说的头文件路径缺失.building phases没添加.

ld: symbol(s) not found for architecture armv7错误

将两个c函数从cpp文件中分离出来单独放入一个c文件中,报了下面的错: Undefined symbols for architecture armv7:  "MyEncrypt(unsigned char*, int, unsigned char*, int*, unsigned char*)", referenced from:      MainScene::init() in MainScene.o  "MyDecrypt(unsigned char*, int, u

Nginx 安装 (mac os) 错误 ld: symbol(s) not found for architecture x86_64

今天在mac os 上编译安装Nginx时候,报错:ld: symbol(s) not found for architecture x86_64, 经过一番折腾之后发现,由于Nginx依赖openssl库,查看openssl的./config 文件发现,这个问题应该是 openssl/config脚本猜对你的系统是64位,但是 会根据$KERNEL_BITS来判断是否开启x86_64编译,默认不开启,他会给你5秒时间确认是否停止编译,手动设置x86_64编译,所以默认你生成的openssl库文

坑爹的 ld: symbol(s) not found for architecture armv7

前两天好好的程序在Xcode 8 4s(8.4)真机的时候遇到上图错误,但是在5s.6s上都能正常运行,第一反应百度--然后根据百度经验: 如果真机调试就是 undefined symbols for architecture armv7错误! 发生这种错误通常是project.pbxproj这个文件引起的,尤其在多人合作开发的时候,svn提交不规范可能导致project.pbxproj发生错误,导致文件的引用不在project.pbxproj文件中. xcode项目import文件会根据pro

Showing Recent Messages ld: symbol(s) not found for architecture x86_64 可能出现的原因 模拟器运行的结果

---恢复内容开始--- 今天入职新公司,模拟器运行之前项目代码,各种崩溃,原因如下 最后问了各种人和网上各种资料查询,还是没有解决,最后只能找到几个月前项目负责人咨询,说是静态库不支持模拟器,只能真机运行, libprinter.SDK.a这个库不支持模拟器运行 ---恢复内容结束---

ld: symbol(s) not found for architecture armv7

解决方案: Xcode直接clean应该是没有删掉项目索引之类的,我直接找到DerivedData,把里面所有文件夹都给清理了,再编译就好了PS:DerivedData影响:可重新生成:会删除build生成的项目索引.build输出以及日志.重新打开项目时会重新生成,大的项目会耗费一些时间. 路径:~/Library/Developer/Xcode/DerivedData 原文地址:https://www.cnblogs.com/foolish-guo/p/10898412.html

更新cocoapods之后,出现Undefined symbols for architecture arm64

最近刚更新了cocoapods之后出现了 Undefined symbols for architecture arm64: ld: symbol(s) not found for architecture arm64 所有的第三方库都不支持 arm64. 由于之前的三方类库编译文件已存在,导致更新的类库无法编译!!!(查找了很多方法都无效,最终还是这个原因!) 只需要在libPods-xxxx.a点Show in Finder,将Products目录下文件全部清空,重新编译就好了.

微信分享SDK导入报错 Undefined symbols for architecture i386:

Undefined symbols for architecture i386:   "operator delete[](void*)", referenced from:       +[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)       +[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)       +

Undefined symbols for architecture i386: "_deflate", referenced from:

Undefined symbols for architecture i386: "_deflate", referenced from: PlatCompress(enumCompressOperation, CompressCookie*, void*, long) in libMo.a(tlplatcompress.o) "_deflateEnd", referenced from: PlatCompress(enumCompressOperation, Co