![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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
|