您当前的位置: 首页 >  xcode

更仔细些:让你看懂Xcode链接错误提示

发布时间:2018-11-18 15:10:42 ,浏览量:0

修改了代码里一个地方,编译都过不去,Xcode提示如下:

在这里插入图片描述

注意,只是链接器报错,但并未定位到实际代码的某一行里!!!

一般来说这个问题往往是因为代码对象.o文件和实际不一致导致,我们需要删除App文件或.o,文件确保其重新生成即可。

但在这里却又不一样…

因为检查.o文件名,并不在一个库中!

仔细查看详细错误信息:

在这里插入图片描述

如上,翻译过来就是:

MainTabBarViewController.o里面MainTabBarViewController.setup()方法引用了一个未定义在的符号:__T010LightHabit5ModelC13defaultFolderAA0E0Cfg

怎么会有这么奇怪的符号?这是编译器转换后准备链接的符号名,和C++类似,在编译时符号表是全局的,所以必须用文件、类、方法签名等额外修饰字符确保符号名称的唯一性,所以上面的符号在代码中的名称是:Model类的计算属性defaultFolder.

为什么这里出错了?因为我在代码中在名称后加了一个?号,使其变为Optional类型,方法签名不对,自然链接时找不到名字了。

但是Xcode也有问题,为什么不能定位到MainTabBarViewController.setup()里那句代码呢?如果能够定位到实际代码中的那一行就更好了。

以上问题出现在Xcode 9.2,Xcode 10中未作测试。

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.4121s