![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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 SYS$STARLET_C.TLB. 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 SYS$LIB_C.TLB library. 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.
|