The Question is:
I converting an application form VAX C to ANSI C and I running in to following
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
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.
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
$ ty x.c
typedef char BYTE;
printf("hello %c\n",(BYTE) 63);
Compaq C V6.4-004 on OpenVMS Alpha V7.2-1