[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

Reporting a C bug?

» close window

The Question is:

 
Hi,
I converting an application form VAX C to ANSI C and I running in to following
 problem
 
The current Compaq C define BYTE as
"typedef unsigned char BYTE"
 
and the old code using VAX C define BYTE as
"typedef char BYTE"
 
As result when I try to compile the application following error show up
 
typedef unsigned char           BYTE;
................................^
%CC-E-NOLINKAGE, In this declaration, "BYTE" has no linkage and has a prior decl
aration in this scope at line number 207 in file $5$DKA0:[DEV.DET.V0700.J.SRC]DM
XUTLDEF.H;15.
 
And I can not just change the type of BYTE because the application use a lot of
 old module that use  "typedef char BYTE" and the new compaq c routine use
 "typedef unsigned char BYTE" so is there any way to fix this.
 
James
 
 


The Answer is :

 
  Without details of the header file(s) involved and without some sort
  of reproducer, a specific answer is difficult -- the OpenVMS Wizard
  has tried to locate any existing typedef references, and has tried
  a (successful) trial build of an application (see below, braces
  replaced with brackets) containing this typedef.
 
  Please contact the Compaq Customer Support Center for assistance
  in locating and resolving this particular problem.
 
$ cc x
$ lin x
$ r x
hello ?
$ ty x.c
#include [stdio.h]
typedef char BYTE;
main()
  {
  printf("hello %c\n",(BYTE) 63);
  return 1;
  }
$ cc/ver
Compaq C V6.4-004 on OpenVMS Alpha V7.2-1
 
 

answer written or last revised on ( 7-MAY-2001 )

» close window