“用fpc编译+组装时(在OSX上,“数据元素太大”错误]] << [

问题描述 投票:-1回答:2
在64位Mac / OSX环境中使用Data element too large(Free Pascal编译器)进行编译和组装时,如何解决和修复致命的fpc错误?

看来,错误的原因可能是一个array[0..MaxInt]调用(有关更多详细信息,请参见下文,但如果是这样,我不希望如何解决它或解决它。

详细信息:

使用从build.sh安装的https://github.com/whatwg/wattsi 3.0.0-rc1(从fpc映像)从ftp://freepascal.stack.nl/pub/fpc/beta/3.0.0-rc1/i386-macosx/运行pc-3.0.0rc1.intel-macosx.dmg脚本时遇到此错误。 (注: README.md file says I need to use 3.0.0-rc1 specifially-而不是v2.6.4,最新的稳定版本?)。[Build运行正常,直到编译https://github.com/whatwg/wattsi/blob/master/src/html/htmlparser.pas源之后,在尝试汇编该源时它以Data element too large错误失败。

具体来说,它记录为:htmlparser.pas(336,42) Error: Data element too largehtmlparser.pas文件的第333至336行如下所示:

type TBlob = Pointer; PBlobArray = ^TBlobArray; TBlobArray = array[0..MaxInt] of TBlob;

…所以我怀疑Data element too large错误是由于array[0..MaxInt]导致某种系统限制而导致的?

到目前为止,我的故障排除尝试的程度是,在由构建生成的https://github.com/whatwg/wattsi/blob/master/src/lib/compile.sh文件中,有一行ulimit -v 800000,我认为这可能会过度限制内存资源,因此我删除了该行并重新运行构建脚本,但我仍然在同一点出现Data element too large错误。

在64位Mac / OSX环境中使用fpc(Free Pascal编译器)进行编译和组装时,如何解决致命数据元素太大的错误并进行修复?似乎是导致错误的原因...

macos linker 32bit-64bit freepascal
2个回答
1
投票
最近的FPC进行一种编译时范围检查。这种范围检查确定了编译时间,该类型太大了,即使它从未被实际分配过(总是使用指针,较旧的Delphi版本不能过度索引指针,因此使用了此结构)

0
投票
尝试将DEFINES中的src/build.sh行更改为
© www.soinside.com 2019 - 2024. All rights reserved.