iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了更新到iPhone SDK 4.0后,链接器错误(仅限模拟器)具有自己的库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我最近更新到iPhone SDK 4.0,不再能够为iPhone模拟器构建我的项目.问题是ld找不到我自己的一个库的类: "_OBJC_CLASS_$_Book", referenced from: objc-class-ref-to-Book in Category.o (maybe you meant: ...) ld: symbol(s) not found collect2:
我最近更新到iPhone SDK 4.0,不再能够为iPhone模拟器构建我的项目.问题是ld找不到我自己的一个库的类:

"_OBJC_CLASS_$_Book",referenced from:
   objc-class-ref-to-Book in Category.o
   (maybe you meant: ...)
ld: symbol(s) not found
collect2: ld returned 1 exit status

我已经阅读了一些其他类似问题的帖子,例如here.“很遗憾”,我的问题与SDK框架无关,但是我自己的lib,所以这里提到的解决方案不适用于此.

该库包含在我的目标的“Link Binary With Libraries”下,库搜索路径是正确的(使用XCode和直接在我的项目文件中使用纯文本编辑器进行检查)并正确添加到gcc命令中.

我使用iPhone模拟器3.2作为基础SDK,但SDK 4.0也出现同样的问题.同样,这适用于我的设备目标,但不适用于我的模拟器目标.不过,在我从iPhone SDK 3.2更新到4.0之前,它同时适用于两者.我还能够通过创建只有一个文件链接库的新项目来重现此错误.但是,在我更新XCode和我的SDK之前,lib应该没问题,因为它适用于模拟器3.2.

更多事实:Mac OS X 10.6.3,XCode 3.2.3 64位,iPhone OS 3.2,GCC 4.2

任何帮助将受到高度赞赏.

编辑:

重新安装SDK 3.2后,一切都按预期工作了.必须注意的是,每次安装都会覆盖/Developer/Platforms/iPhonesimulator.platform/Developer/SDKs文件夹中的SDK.然后我再次尝试重新安装SDK 4.0,发生了与上面相同的错误.我没有更改项目中的任何内容,并始终使用3.2作为Base SDK.

因此,问题可以缩小到以下选项:

> Apple改变了……在模拟器SDK 3.2中导致问题
> XCode 3.2.3的变化导致了问题
>构建我自己的库时错误/缺少编译器标志(但是,这些标志只会导致更改的SDK或更改的IDE出现问题)

我还在/Developer/Platforms/iPhonesimulator.platform/Developer/SDKs/iPhonesimulator3.2.sdk上为此文件夹的旧版本和新版本执行了文件夹差异.事实证明,“相同”的SDK中实际上有微小的变化.不过,我仍然认为这是一个IDE /编译器标志问题.

有人有什么想法吗?我不想永远坚持3.2 …

解决方法

确保使用与用于应用程序相同的基本SDK重新编译库.

大佬总结

以上是大佬教程为你收集整理的更新到iPhone SDK 4.0后,链接器错误(仅限模拟器)具有自己的库全部内容,希望文章能够帮你解决更新到iPhone SDK 4.0后,链接器错误(仅限模拟器)具有自己的库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。