HP OpenVMS Systemsask the wizard |
The Question is: I have a logical called lnk$library_1 which is define as $ define/system/exec lnk$library_1 sys$library:vaxcrtl.olb in the systartup_vms.com I have another file called make_dms.com where I am defining define lnk$library_1 NL: what does this mean ? when I am executing this command procedure it gives an error message "error opening NL:[].OLB; as input -RMS-E-EOF, end of file detected" what could be the possible reason ? kindly suggest on this so that I can proceed further. The Answer is :
"error opening NL:[].OLB; as input" is exactly what is expected. You have
asked the linker to search the null device for an object library. Obviously
it cannot exist.
What you should do depends on what you are trying to achieve. Note that
LNK$LIBRARY* logical names are independent name spaces in each logical name
table referenced from LNM$FILE_DEV. That is, the linker will look at
LNK$LIBRARY, LNK$LIBRARY_1, LNK$LIBRAY_2 ... etc first in LNM$PROCESS, then
the same in LNM$JOB, then LNM$GROUP then LNM$SYSTEM (assuming a default
LNM$FILE_DEV search list). So, defining LNM$LIBRARY_1 in the PROCESS table
will not affect the linker searching the library pointed to by LNM$LIBRARY
logical names in the system table.
If you wish to supress searching of the system logical name table definitions
use the /USERLIBRARY qualifier:
LINK
/USERLIBRARY
/USERLIBRARY[=(table[,...])]
/USERLIBRARY=ALL (default)
/NOUSERLIBRARY
Directs the linker to process one or more default user libraries
to resolve symbolic references that remain undefined after all
specified input files have been processed.
Table specifies the logical name tables that the linker searches
for default user libraries. The following keywords are the only
acceptable parameter values:
Keyword Description
ALL Directs the linker to search the process, group, and
system logical name tables for default user library
definitions. This is the default.
GROUP Directs the linker to search the group logical name
table for default user library definitions.
NONE Directs the linker not to search any logical name
table; the /USERLIBRARY=NONE qualifier is equivalent
to the /NOUSERLIBRARY qualifier.
PROCESS Directs the linker to search the process logical name
table for default user library definitions.
SYSTEM Directs the linker to search the system logical name
table for default user library definitions.
Also note that if you are using DECC (as opposed to the obselete product
VAXC), there is no need to direct the linker to search
sys$library:vaxcrtl.olb. Even if you are using VAXC, you'd be much better
off linking against the shareable image library SYS$SHARE:VAXCRTL.EXE.
|