【发布时间】:2013-04-28 01:02:04
【问题描述】:
我正在尝试将 iOS 的 PSPDFKit 集成到我的项目中,但我还没有成功。下载Demo版后,将框架添加到我的项目中,添加所有需要的库并放置
#import <PSPDFKit/PSPDFKit.h>
在“前缀”文件上,我收到链接器错误:
ld: section __objc_const (address=0x00613EA8, size=4651232504) would make the output executable exceed available address range for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
注意:我的项目使用PSTCollectionView,并且我已经在一个测试项目(仅为该效果创建)上成功编译了 PSPDFKit。
我非常感谢任何帮助。提前致谢。
【问题讨论】:
-
这是您的问题:size=4651232504 - 这是为 64 位 Mac 设计的吗?看起来一些整数已经包裹,而负数看起来像一个无符号的巨大数字。看上面的 HEX 数字,看它是不是 0xFFFFFFFF
-
感谢您的反馈,但我不确定您想说什么
size=462343505是问题所在。该应用程序是一个 iOS 应用程序,因此它是一个 32 位 ARM 处理器。我检查了数字 0xFFFFFFFF,十进制是 4294967295,而不是 4651232504,所以它们不匹配。 -
我的意思是,只是读取错误,在一个大小为 4 GB 的地址处有一些 ObjectiveC 常量。在 32 位系统上加载这么大的对象是不可能的。追踪它,你的问题就解决了。我怀疑某些创建某些静态对象大小的宏被搞砸了(溢出、下溢)并导致了这种情况。除了四处寻找之外没有其他想法 - 肯定很乏味。
-
我在构建一个不同的库时遇到了这个问题 - 与 LTO 的链接使它消失了 (
-flto)。可以帮到你。
标签: ios pspdfkit pstcollectionview