??????????高分求解一个链接错误,C51的???????????
我现在做一个手持机的程序,用的是C51,利用人家的开发包作,程序写好后,用 c97 文件名 编译,再用 l97 文件名 连接,再用 hexobj 生成。
我写完倒数第四个函数后,编译没问题,连接出错:
Error[18]:Range error in module h2 <c:\c516sc\lib\h2.r03> ,segment CODE at address FA6. Value 100DF, in tag t_rel_p16,is out of bounds.
以前也碰到过联结错误,可是那错误提示有些信息可以知道哪里出错,这个错误提示我实在是弄不明白。
我问他们的技术支持,他说可能是文件的代码太长(我所有的代码在一个.c文件里,目前3000行),我就把文件分成4个,结果还是这个错误。我又把刚写完的倒数第四个函数分成几个小函数,也不行。 我又把文件分成5个,其中刚写完的倒数第四个函数独占一个,也不行。
可是我重新建立一个.c文件,只把刚写完的倒数第四个函数和其调用的函数拷贝上去,用一个mian函数调用它,编译联结却一切正常。
我实在是没办法了,看看大家有没有什么建议,谢谢大家。
[解决办法]
Error[18]:Range error in module h2 <c:\c516sc\lib\h2.r03> ,segment CODE at address FA6. Value 100DF, in tag t_rel_p16,is out of bounds.
代码太长, 编译选项没有没运行规模选项?