⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wlerrmsg.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 4 页
字号:
.*
.*
.* Messages take one of the following forms:
.*
.* .errnote 2002 ** internal ** - %s
.* .errnote 2010,3010 I/O error processing %s : %s
.*
.* For the .H file, we want the last three digits (i.e., 010)
.* to form the context number.
.*
.dm errnote begin
.se *ttl$=&'substr(&*,&'pos(' ',&*)+1)
.se *pos=0
.if &e'&dohelp. eq 0 .do begin
.   .note MSG &*1
.   .bd &*ttl$
.   .ix 'message' '&*1'
.do end
.el .do begin
:ZH2.&*
.   .cntents &*
.   .pu 1 .ixsect &*
:ZI1.&*ttl$
.   .pu 1 .ixline `&*ttl$`
.   .se *ctxn=&'substr(&*,2,&'pos(' ',&*)-2)
.   .se *pos=&'pos(',',&*1)
.   .if &*pos. ne 0 .do begin
.   .   .se *ctxn=&'substr(&*,2,&*pos.-2)
.   .   .se *ttl$=&'substr(&*,&*pos.+1)
:ZI1.&*ttl$
.   .   .pu 1 .ixline `&*ttl$`
.   .do end
.   .if '&dotarget' eq 'os2' .do begin
.   .   .if &'length(&*ctxn.) eq 3 .do begin
.   .   .   .se *ctxn='20&*ctxn.'
.   .   .do end
.   .   .el .do begin
.   .   .   .se *ctxn='2&*ctxn.'
.   .   .do end
.   .do end
.   .ctxstr &*
.   .pu 2 #define HLP_&'upper(&ctx_str.) &*ctxn
.*  .np
.*  .us &*
.do end
.dm errnote end
.*
.* close the header file
.*
.pu 2
.*
.im wlerrfmt
.np
The messages listed contain references to
.id %s,
.id %S,
.id %a,
.id %x,
.id %d,
.id %l,
and
.id %f.
They represent strings that are substituted by the &lnkname to make
the error message more precise.
.autonote
.note
.id %s
represents a string.
This may be a segment or group name, or the name of a linker directive
or option.
.note
.id %S
represents the name of a symbol.
.note
.id %a
represents an address.
The format of the address depends on the format of the executable file
being generated.
.note
.id %x
represents a hexadecimal number.
.note
.id %d
represents integers in the range -32768 and 32767.
.note
.id %l
represents integers in the range -2147483648 and 2147483647.
.note
.id %f
represents an executable file format such as DOS, WINDOWS, PHARLAP,
NOVELL, OS2, QNX or ELF.
.endnote
.np
The following is a list of all warning and error messages produced by
the &lnkname followed by a description of the message.
A message may contain more than one reference to "%s".
In such a case, the description will reference them as "%sn" where n
is the occurrence of "%s" in the message.
.if &e'&dohelp eq 0 .do begin
.begnote
.do end
.*
.errnote 2002 ** internal ** - %s
.np
If this message occurs, you have found a bug in the linker and should
report it.
.*
.errnote 2008 cannot open %s1 : %s2
.np
An error occurred while trying to open the file "%s1".
The reason for the error is given by "%s2".
Generally this error message is issued when the linker cannot open a
file (e.g., an object file or an executable file).
.*
.errnote 3009 dynamic memory exhausted
.np
The linker uses all available memory when linking an application.
.if '&target' ne 'QNX' .do begin
For DOS-hosted versions of the linker, this includes expanded memory
(EMS) and extended memory.
.do end
When all available memory is used, a spill file will be used.
Therefore, unless you are low on disk space, the linker will always
be able to generate the executable file.
.if &e'&optdoc eq 0 .do begin
Dynamic memory is the memory the linker uses to build its internal
data structures and symbol table.
.if '&target' eq 'QNX' .do begin
A spill file is not used for dynamic memory.
.do end
.el .do begin
:CMT. Dynamic memory is the amount of conventional memory (below 1 megabyte)
:CMT. available on your machine;
:CMT. a spill file is not used for dynamic memory.
Dynamic memory is the amount of unallocated memory available on your
machine (including virtual memory for those operating systems that
support it).
A spill file is not used for dynamic memory.
.do end
If the linker issues this message, it cannot link your application.
The following are suggestions that may help you in this situation.
.autonote
.note
Concatenate all your object files into one and specify only the
resulting object file as input to the linker.
.if '&target' eq 'QNX' .do begin
For example, you can issue the following command.
.millust begin
% cat *.obj > all.tmp
% mv all.tmp all.obj
.millust end
.do end
.el .do begin
For example, if you are linking in a DOS environment, you can issue
the following DOS command.
.millust begin
C>copy/b *.obj all.obj
.millust end
.do end
.pc
This technique only works for OMF-type object files.
This significantly reduces the size of the file list the linker must
maintain.
.note
Object files may contain a record which specifies the module name.
This information is used by &dbgname to locate modules during a
debugging session and usually contains the full path of the source
file.
This can consume a significant amount of memory when many such object
files are being linked.
If your source is being compiled by the &cmpcname or C++ compiler, you
can use the "nm" option to set the module name to just the file name.
This reduces the amount of memory required by the linker.
If your are using &dbgname to debug your application, you may have to
use the "set source" command so that the source corresponding to a
module can be located.
.note
Typically, when you are compiling a program for a large code model,
each module defines a different "text" segment.
If you are compiling your application using the &cmpcname or C++
compiler, you can reduce the number of "text" segments that the linker
has to process by specifying the "nt" option.
The "nt" option allows you to specify the name of the "text" segment
so that a group of object files define the same "text" segment.
.endnote
.do end
.*
.errnote 2010,3010 I/O error processing %s1 : %s2
.np
An error has occurred while processing the file "%s1".
The cause of the error is given by "%s2".
This error is usually detected while reading from object and library
files or writing to the spill file or executable file.
For example, this error would be issued if a "disk full" condition
existed.
.*
.errnote 2011 invalid object file attribute
.np
The linker encountered an object file that was not of the format
required of an object file.
.*
.errnote 2012 invalid library file attribute
.np
The linker encountered a library file that was not of the format
required of a library file.
.*
.errnote 3013 break key detected
.np
The linking process was interrupted by the user from the keyboard.
.*
.errnote 1014 stack segment not found
.np
The linker identifies the stack segment by a segment defined as having
the "STACK" attribute.
This message is issued if no such segment is encountered.
This usually happens if the linker cannot find the run-time libraries
required to link your application.
.*
.errnote 2015 bad relocation type specified
.np
This message is issued if a a relocation is found in an object file
which the linker does not support.
.*
.errnote 2016 %a: absolute target invalid for self-relative relocation
.np
This message is issued, for example, if a near call or jump is made to
an external symbol which is defined using the "EQU" assembler
directive.
"%a" identifies the location of the near call or jump instruction.
.*
.errnote 2017 bad location specified for self-relative relocation at %a
.np
This message is issued if a bad fixup is encountered.
"%a" defines the location of the fixup.
.*
.errnote 2018 relocation offset at %a is out of range
.np
This message is issued when the offset part of a relocation exceeds
64K in a 16-bit executable or an Alpha executable.
"%a" defines the location of the fixup.
The error is most commonly caused by errors in coding assembly
language routines.
Consider a module that references an external symbol that is defined
in a segment different from the one in which the reference occurred.
The module, however, specifies that the segment in which the symbol is
defined is the same segment as the segment that references the symbol.
This error is most commonly caused when the "EXTRN" assembler
directive is placed after the "SEGMENT" assembler directive for the
segment referencing the symbol.
If the segment that references the symbol is allocated far enough away
from the segment that defines the symbol, the linker will issue this
message.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.*
.errnote 1019 segment relocation at %a
.np
This message is issued when a 16-bit segment relocation is encountered
and "FORMAT DOS COM", "FORMAT PHARLAP" or "FORMAT NOVELL" has been
specified.
None of the above executable file formats allow segment relocation.
"%a" identifies the location of the segment relocation.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.*
.errnote 2020 size of group %s exceeds 64k by %l bytes
.np
The group "%s" has exceeded the maximum size (64K) allowed for a group
in a 16-bit executable by "%l" bytes.
Usually, the group is "DGROUP" (the default data segment) and your
application has placed too much data in this group.
.if &e'&optdoc eq 0 .do begin
One of the following may solve this problem.
.autonote
.note
If you are using the &cmpcname or C++ compiler, you can place some of
your data in a far segment by using the "far" keyword when defining
data.
You can also decrease the value of the data threshold by using the
"zt" compiler option.
Any datum whose size exceeds the value of the data threshold will be
placed in a far segment.
.note
If you are using the &cmpfname compiler,
you can decrease the value of the data threshold by using the "dt"
compiler option.
Any datum whose size exceeds the value of the data threshold will be
placed in a far segment.
.endnote
.do end
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.*
.errnote 2021 size of segment %s exceeds 64k by %l bytes
.np
The segment "%s" has exceeded the maximum size (64K) for a segment in
a 16-bit executable.
This usually occurs if you are linking a 16-bit application that has
been compiled for a small code model and the size of the application
has grown in such a way that the size of the code segment ("_TEXT")
has exceeded 64K.
.if '&overlay' eq 'yes' .do begin
You can overlay your application or compile it for a large code model
.do end
.el .do begin
You can compile your application for a large code model
.do end
if you cannot reduce the amount of code in your application.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.*
.errnote 2022 cannot have a starting address with an imported symbol
.np
When generating an OS/2 executable file, a symbol imported from a DLL
cannot be a start address.
When generating a NetWare executable file, a symbol imported from
an NLM cannot be a start address.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.*
.errnote 1023 no starting address found, using %a
.np
The starting address defines the location where execution is to begin
and must be defined by a special "module end" record in one of the
object files linked into your application.
This message is issued if no such record is encountered in which case
a default starting address, namely "%a", will be used.
This usually happens if the linker cannot find the run-time libraries
required to link your application.
.*
.if '&overlay' eq 'yes' .do begin
.errnote 2024 missing overlay loader
.np
This message is issued when an overlayed 16-bit DOS executable is
being linked and the overlay manager has not been encountered.
This usually happens if the linker cannot find the run-time libraries
required to link your application.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.do end
.*
.if '&overlay' eq 'yes' .do begin
.errnote 2025 short vector %d is out of range
.np
This message is issued when the linker is creating an overlayed 16-bit
DOS executable and "OPTION SMALL" is specified.
Since an overlay vector contains a near call to the overlay loader
followed by a near jump to the routine corresponding to the overlay
vector, all code including the overlay manager and all overlay vectors
must be less than 64K.
This message is issued if the offset of an overlay vector from the
overlay loader or the corresponding routine exceeds 64K.
.if &e'&optdoc eq 1 .do begin
.np
This message should not be issued for a &powerpp Win32 executable.
If it is issued, please report this problem.
.do end
.do end
.*
.errnote 2026 redefinition of reserved symbol %s
.np
The linker defines certain reserved symbols.
These symbols are "_edata", "_end", "__OVLTAB__", "__OVLSTARTVEC__",
"__OVLENDVEC__", "__LOVLLDR__", "__NOVLLDR__", "__SOVLLDR__",
"__LOVLINIT__", "__NOVLINIT__" and "__SOVLINIT__".
.if &e'&optdoc eq 0 .do begin
.if '&overlay' eq 'yes' .do begin
The symbols "__OVLTAB__", "__OVLSTARTVEC__", "__OVLENDVEC__",
"__LOVLLDR__", "__NOVLLDR__", "__SOVLLDR__", "__LOVLINIT__",
"__NOVLINIT__" and "__SOVLINIT__" are defined only if you are using
overlays in 16-bit DOS executables.
.do end
.do end
The symbols "_edata" and "_end" are defined only if the "DOSSEG"
option is specified.
Your application must not attempt to define these symbols.
"%s" identifies the reserved symbol.
.*
.errnote 1027 redefinition of %S ignored
.np
The symbol "%S" has been defined by more that one module; the first
definition is used.
This is only a warning message.
Note that if a symbol is defined more than once and its address is the
same in both cases, no warning will be issued.
.if &e'&optdoc eq 0 .do begin
This prevents the warning message from being issued when linking

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -