我正在用proC编译一个数据库库,它将.ppc库文件转换为gcc可以使用的.c文件。但是,我在proC中遇到了很多错误,如下所示
PCC-S-02201, Encountered the symbol
"__ attribute__ " when expecting one of
the `following`
...
, Encountered the symbol
"__builtin_va_list" when expecting one of
the `following`
缺少的符号来自标准包含链,如stdio. h和stdlib. h。我如何解决这个问题?
我正在编译的库来自一个旧的solaris系统,我们现在正在升级(到一个新的solaris10系统),头文件似乎没有使用这些符号。例如,较新的.h文件具有
typedef __builtin_va_list va_list
而旧的.h文件
typedef void* va_list
有很多这样的事情,所以我不愿意去和修复所有的手动与typedef
2条答案
按热度按时间qmb5sa221#
将
$ORACLE_HOME/precomp/admin/pcscfg.cfg
中的PARSE
参数更改为PARTIAL
-它将使用更宽松的C解析,因此Pro*C不会抱怨它不理解的C语法。osh3o9ms2#
您也可以通过包含此预处理器指令来实现它。Pro*C计算宏并替换它们
我实际上在家里,不能验证它是如何在我们的代码库中定义的,我会检查它并完成它,但它就像上面一样。
更新:所以我们在项目中使用的确切代码是:
由于未知的原因,预处理器无法定义64位类型,所以我直接定义它们,以便它工作。我们的项目基于Solaris 9 for SPARC,使用GCC 3.3.1和GCC 3.4.2编译,并使用Oracle 10g