Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
HP.com home

HP OpenVMS Systems

Ask the Wizard
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
Content starts here

Ask the Wizard Questions

c code problem

The Question is:

O' exalted wizard,

I am trying to compile http://www.partner.digital.com/www-swdev/files/OPENVMS/examples/ether/ether.c
on my system for the purpose of licensing our software
based on ethernet hardware address.  I get the following
messages during the compile:

$ cc ether.c

#include 
.^
%CC-F-INCLUDEOPEN, An error occurred while attempting to open the include file "
": Key not found.
at line number 75 in file DKA200:[STK.V210]ETHER.C;1

#include 
.^
%CC-E-NOOBJ, Object file deleted.
at line number 75 in file DKA200:[STK.V210]ETHER.C;1


What am I missing?

Thanks.


The Answer is:


>#include 
>.^
>%CC-E-NOOBJ, Object file deleted.
>at line number 75 in file DKA200:[STK.V210]ETHER.C;1
>
>What am I missing?

      Looks like you're missing NMADEF.H. Not all system symbol definitions
    are made availble by default, I guess NMADEF is considered a bit too
    obscure for inclusion in the standard libraries. You can find it as a
    MACRO32 module called $NMADEF in SYS$SHARE:LIB.MLB. Since it only contains
    constant definitions, it's  quite trivial to convert into a form digestable
    by C:

    $ LIBRARY/EXTRACT=$NMADEF/OUTPUT=NMADEF.H SYS$SHARE:LIB/MACRO

    Now edit NMADEF.H removing the top lines:

            .MACRO  $NMADEF,$GBL
            $DEFINI NMA,$GBL

    and bottom lines:
            $DEFEND NMA,$GBL,DEF
            .ENDM

    Now do a global substitution of "$EQU " for "#define ". ie, lines which
    look like:

    $EQU    NMA$C_OBJ_NIC   19
    $EQU    NMA$C_FNC_LOA   15
    $EQU    NMA$C_FNC_DUM   16

    become

    #define    NMA$C_OBJ_NIC   19
    #define    NMA$C_FNC_LOA   15
    #define    NMA$C_FNC_DUM   16

    That should do the trick.

NMADEF is provided in SYS$LIB_C.TLB on Alpha, but is not provided on VAX.

The sample program has this in the comments at the beginning of the program.

 Compilation command:
            OpenVMS Alpha:
                $ CC GET_ETHER+SYS$SHARE:SYS$LIB_C/LIBRARY
            OpenVMS VAX:
                $ CC GET_ETHER


 

** About PDF files: The PDF files on this Web site can be read online or printed using Adobe® Acrobat® Reader. If you do not have this software installed on your system, you may download it from the Adobe Web site.
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2008 Hewlett-Packard Development Company, L.P.