Oracle Linux 8.6下19c Pro*C编译报错PCC-S-02014求助
Pro*C编译PCC-S-02014错误的解决思路
调整系统头文件包含顺序
Pro*C预编译器对C语言扩展语法的兼容性有限,将Oracle自带的头文件放在最优先级,避免系统头文件中的...(可变参数)、##(宏连接符)等GCC扩展语法被预编译器误判为错误。修改pcscfg.cfg的sys_include配置:sys_include=($ORACLE_HOME/precomp/public,/usr/lib/gcc/x86_64-redhat-linux/8/include,/usr/include)补充GCC环境宏定义
在pcscfg.cfg中添加GCC相关宏定义,让预编译器识别当前为GCC环境,跳过对扩展语法的严格检查:define=__GNUC__ define=__GNUC_MINOR__ define=__GNUC_PATCHLEVEL__排除冲突的系统头文件
如果上述调整无效,直接排除报错的sys/cdefs.h文件,可在编译命令中添加参数:proc iname=mytest.pc exclude=/usr/include/sys/cdefs.h也可以在
pcscfg.cfg中新增exclude=/usr/include/sys/cdefs.h配置项。核对环境一致性
对比正常运行的全新虚拟机,检查ORACLE_HOME、PATH、LD_LIBRARY_PATH等环境变量是否完全一致,重点确认GCC版本必须为同版本的8.x系列。验证预编译器版本
执行proc --version确认当前Pro*C预编译器版本,确保与正常虚拟机的版本完全匹配,避免版本差异导致的语法兼容问题。
内容的提问来源于stack exchange,提问作者StefanG
相关产品推荐
相关产品推荐

