proc cpp_suffix=cpp code=cpp txsPublic.pcc define=__linux UNSAFE_NULL=YES MODE=ORACLE DBMS=V8 CHAR_MAP=STRING INCLUDE=/home/tax/100/src/public/include INCLUDE=/home/tax/100/src/server/include INCLUDE=/usr/oracle/product/9.2.0/precomp/public
Pro*C/C++: Release 9.2.0.6.0 - Production on Fri Nov 24 17:07:54 2006
Syntax error at line 52, column 37, file /usr/include/c++/3.4.3/bits/concept_check.h:
Error at line 52, column 37 in file /usr/include/c++/3.4.3/bits/concept_check.h
#define __glibcxx_function_requires(...)
....................................1
PCC-S-02014, Encountered the symbol "..." when expecting one of the following:
) an identifier, define, elif, else, endif, error, if, ifdef,
ifndef,
解决方法:
1、配置好 $ORACLE_HOME/precomp/admin/pcscfg.cfg 文件
根据你的系统不同,大概像这样
sys_include=(/usr/lib/gcclib/i386redhatlinux/3.2.2/include,/u01/oracle/product/8.1.7/precomp/public,/usr/include,/usr/include/sys)
include=(/u01/oracle/product/8.1.7/precomp/public)
include=/u01/oracle/product/8.1.7/precomp/hdrs
include=/u01/oracle/product/8.1.7/tpcc2x_2/src
include=/u01/oracle/product/8.1.7/precomp/precomp/include
include=/u01/oracle/product/8.1.7/precomp/oracore/include
include=/u01/oracle/product/8.1.7/precomp/oracore/public
include=/u01/oracle/product/8.1.7/precomp/rdbms/include
include=/u01/oracle/product/8.1.7/precomp/rdbms/public
include=/u01/oracle/product/8.1.7/precomp/rdbms/demo
include=/u01/oracle/product/8.1.7/precomp/nlsrtl/include
include=/u01/oracle/product/8.1.7/precomp/nlsrtl/public
include=/u01/oracle/product/8.1.7/precomp/network_src/include
include=/u01/oracle/product/8.1.7/precomp/network_src/public
include=/u01/oracle/product/8.1.7/precomp/network/include
include=/u01/oracle/product/8.1.7/precomp/network/public
include=/u01/oracle/product/8.1.7/precomp/plsql/public
ltype=short
2、预编译的时候加上 parse=none 选项
proc iname=*** parse=none
3、编译的时候要链接oracle的库文件, 加选项 -lclntsh
下面是我参照别的网友的一个makefile文件,
INCLDIR= -I. -I/u01/oracle/product/8.1.7/precomp/public -I/u01/oracle/product/8.1.7/rdbms/public -I/u01/oracle/product/8.1.7/rdbms/demo -I/u01/oracle/product/8.1.7/plsql/public -I/u01/oracle/product/8.1.7/network/public
DFLAGS= -DPRECOMP -DLINUX -D_GNU_SOURCE -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS
CFLAGS= -O3
LIBPATH= -L/u01/oracle/product/8.1.7/lib/
LIBS=-lclntsh `cat /u01/oracle/product/8.1.7/lib/sysliblist` -ldl -lm
myproc:myproc.pc
proc parse=no iname=myproc.pc include=$(ORACLE_HOME)/precomp/public
gcc -o $@ $@.c -I$(ORACLE_HOME)/precomp/public -L$(ORACLE_HOME)/lib -lclntsh -lclient8 $(LIBPATH) $(LIBS)
clean:
rm *.lis myproc.c myproc