首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle *C预编译:语法错误,在第166行,第45列,文件/usr/include/sys/cdefs.hPCC-S-02014

Oracle *C预编译:语法错误,在第166行,第45列,文件/usr/include/sys/cdefs.hPCC-S-02014
EN

Stack Overflow用户
提问于 2022-11-16 21:07:51
回答 2查看 97关注 0票数 1

我正在准备一台新的Oracle Linux 8.6机器,它只有一个Oracle客户端19c客户端,它也应该编译一些Pro*C代码,但是当试图编译一个简单的proc代码时,例如

代码语言:javascript
复制
#include <stdio.h>
int main(int argc, char** argv){
printf("Stefan's Hello world!");
return(0);
}

我遇到了错误,比如:

代码语言:javascript
复制
$ proc iname=mytest.pc

Pro*C/C++: Release 19.0.0.0.0 - Production on Wed Nov 16 14:32:43 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

System default option values taken from: /u01/app/oracle/product/19c/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,

我认为这与库配置中的不正确有关,但我不明白是什么。

奇怪的是,我用相同的包准备了一个新的VM,并且正在工作(我记录了所有步骤,并在另一台机器上复制)。

/u01/app/oracle/product/19c/dbhome_1/precomp/admin/pcscfg.cfg的含量是

代码语言:javascript
复制
sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/8/include)
ltype=short
define=__x86_64__
define=_MATH_H

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2022-11-28 14:33:34

正如我在我删除的帖子中提到的,我们在红帽子8环境上也有同样的问题。我们最终通过下调环境中的glibc头来克服这一问题。我们目前正在甲骨文和RedHat的另一个案件,因为他们将自动指责对方。希望能帮上忙。

票数 1
EN

Stack Overflow用户

发布于 2022-12-01 12:59:54

我找到的唯一办法就是更新到伊斯兰会议组织-21.8

我讨厌先知。但话说回来,我讨厌大多数数据库。没有完美的数据库,但有些比其他的更糟糕。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74467239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档