The Question is:
I'm trying to compile a C program with DEC C 5.0-003 compiler. When compiled,
the error "Cannot find file specified in #include directive" is generated for
files hdef.h, iosbdef.h, and va_rangedef.h.
Apparently, I can't locate these include files. Can you tell me where these
include files are? Thanks for your help.
The Answer is :
You have an extremely old C compiler, and one known to potentially
generate code incompatible with newer Alpha microprocessors; a C
compiler with a known code generation bug. The OpenVMS Wizard
would accordingly encourage an upgrade to a more recent compiler.
va_rangedef.h and iosbdef.h are components of SYS$STARLET_C.TLB
definition library. (The OpenVMS Wizard is not aware of an
hdef.h module, though there are various *h*def.h modules around.)
Recent versions of the C compiler will automatically search
To reference SYS$STARLET_C.TLB modules in older compiler versions,
you will want to specify the library on the compilation command.
There is related C information in the FAQ, and there are topics
here -- including C information and C programming examples in
topics (8983), (5829), (5163), (2945), (2486), (3803), and (1661)
-- that may be of some interest to you. The code example in
(2945) shows how to reference both the SYS$STARLET_C.TLB APIs
and the version-specific and/or private APIs that reside in
The OpenVMS Wizard would also encourage a review of the available
C programming documentation -- the compiler documentation contains
the user's guide and related OpenVMS C programming materials, and
the most current C run-time library documentation now ships as part
of the OpenVMS documentation set.