I have less experience in PRO C. When I try to build/compile my PRO C code in Linux server, I am getting below error.
Pro*C/C++: Release 19.0.0.0.0 - Production on Tue Jan 17 00:51:59 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
System default option values taken from: /usr/local/oracle/19.3.0/dbhome_1/precomp/admin/pcscfg.cfg
Syntax error at line 166, column 45, file /usr/include/sys/cdefs.h:
Error at line 166, column 45 in file /usr/include/sys/cdefs.h
#define __glibc_fortify(f, __l, __s, __osz, ...) \
............................................1
PCC-S-02014, Encountered the symbol "..." when expecting one of the following:
an identifier, define, elif, else, endif, error, if, ifdef,
ifndef, include, include_next, line, pragma, undef, exec,
sql, begin, end, var, type, oracle,
an immediate preprocessor command, a C token, create,
function, package, procedure, trigger, or, replace,
Syntax error at line 168, column 9, file /usr/include/sys/cdefs.h:
Error at line 168, column 9 in file /usr/include/sys/cdefs.h
? __ ## f ## _alias (__VA_ARGS__) \
........1
PCC-S-02014, Encountered the symbol "##" when expecting one of the following:
; { } , = : ( ) [ ] * ? | & < > + - / % ~ ! . # @ ^ *= /= %=
+= -= <<= >>= &&= ||= ^= ~= := | & == != <= >= << >> ++ -- ->
... .. <> ** => an identifier, a string, a numeric constant,
a sql string, misc. punctuation, newline, define, elif, else,
endif, error, if, ifdef, ifndef, include, include_next, line,
pragma, undef, exec, sql, begin, end, var, type, oracle,
an immediate preprocessor command, a C token, exec sql,
exec sql include, exec sql var, exec sql begin, exec sql end,
end-exec, exec sql type, exec oracle, exec oracle else,
exec oracle endif, exec oracle begin, a sql hint, create,
function, package, procedure, trigger, or, replace,
a C++ token,
Syntax error at line 500, column 20, file /usr/include/sys/cdefs.h:
Error at line 500, column 20 in file /usr/include/sys/cdefs.h
#include <bits/long-double.h>
...................1
PCC-S-02014, Encountered the symbol "-" when expecting one of the following:
: [ ] > + / . .. an identifier, a numeric constant, define,
elif, else, endif, error, if, ifdef, ifndef, include,
include_next, line, pragma, undef, exec, sql, begin, end,
var, type, oracle, an immediate preprocessor command,
a C token, create, function, package, procedure, trigger, or,
replace,
Syntax error at line 564, column 2, file /usr/include/sys/cdefs.h:
Error at line 564, column 2 in file /usr/include/sys/cdefs.h
#endif /* sys/cdefs.h */
.1
PCC-S-02014, Encountered the symbol "endif" when expecting one of the following:
a numeric constant, newline, define, error, if, ifdef,
ifndef, include, include_next, line, pragma, undef,
an immediate preprocessor command, a C token,
The symbol "define," was substituted for "endif" to continue.
Syntax error at line 216, column 1, file /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h:
Error at line 216, column 1 in file /usr/lib/gcc/x86_64-redhat-linux/8/include/s
tddef.h
typedef __SIZE_TYPE__ size_t;
1
PCC-S-02201, Encountered the symbol "typedef" when expecting one of the followin
g:
; , = ( [
The symbol ";" was substituted for "typedef" to continue.
Syntax error at line 51, column 9, file /usr/include/bits/types.h:
Error at line 51, column 9 in file /usr/include/bits/types.h
typedef __int8_t __int_least8_t;
........1
PCC-S-02201, Encountered the symbol "__int8_t" when expecting one of the followi
ng:
auto, char, const, double, enum, float, int, long,
ulong_varchar, OCIBFileLocator OCIBlobLocator,
OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
short, signed, sql_context, sql_cursor, static, struct,
union, unsigned, utext, uvarchar, varchar, void, volatile,
a typedef name,
The symbol "enum," was substituted for "__int8_t" to continue.
Syntax error at line 52, column 9, file /usr/include/bits/types.h:
Error at line 52, column 9 in file /usr/include/bits/types.h
typedef __uint8_t __uint_least8_t;
........1
PCC-S-02201, Encountered the symbol "__uint8_t" when expecting one of the follow
ing:
auto, char, const, double, enum, float, int, long,
ulong_varchar, OCIBFileLocator OCIBlobLocator,
OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
short, signed, sql_context, sql_cursor, static, struct,
union, unsigned, utext, uvarchar, varchar, void, volatile,
a typedef name,
The symbol "enum," was substituted for "__uint8_t" to continue.
My pcscfg.cfg file content is:
sys_include=(/usr/include/c++/8,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/8/include,$ORACLE_HOME/precomp/public,/usr/include)
ltype=short
define=__x86_64__
I am using Oracle version 19