terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1392回复:0

解决Win98 + VC5.0编译打印驱动出现fatal error RW1031的问题

楼主#
更多 发布于:2003-09-22 16:03
前几天在增加了打印驱动的代码之后,对其进行编译,出现如下错误:
RC : fatal error RW1031: Segment 1 and its relocation information is too large for load optimization. Make the segment LOADONCALL or rerun RC using the -K switch if the segment must be preloaded.
这个问题出现在代码量大到一定程度的时候。

问题现已解决,方法如下。

问题的主要原因在于编译后需要PRELOAD的代码段的大小超过64K,解决的方法是将不同的source file 编译连接到不同的code segment。

具体的方法是在.def文件中的SEGMENTS下增加你想实现的segment的定义,然后在makefile中利用-NT选项来指定source file对应的code segment。

附件中的压缩包解开之后结构如下:
CBitmap(dir)-----我把98ddk自带的CBitmap的例子修改了一下,提供一个小例子
---CBitmap.def
---makefile
hpplot(dir)-----95ddk中的hpplot例子,可以作为一个更好的参考
---Driver.def
---makefile
cl_options.txt-----vc1.52 cl命令的options
error_RW1031.txt-----MSDN(VC6.0)中关于RW1031的说明

我对编译器的各个选项的使用以及编译原理都没什么太多的了解,如果上面的描述有什么错误,还请大虾指点


[编辑 -  9/22/03 by  terrificskyfox]

[编辑 -  9/22/03 by  terrificskyfox]
附件名称/大小 下载次数 最后更新
2003-09-22_RW1031.zip (8KB)  3
游客

返回顶部