求助,linux下的oracle多线程编译出错.

求助,linux下的oracle多线程编译出错.

我在linux下面编了一个oracle的多线程的程序,但是我
每次编译的时候总是报错
roc   userid=oracle/ora817 PARSE=NONE threads=yes  iname=bill_main.pc dbms=v8 CODE=ANSI_C

Pro*C/C++: Release 8.1.7.0.0 - Production on Sat Sep 27 10:19:39 2003

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

System default option values taken from: /oracle/product/8.1.7/precomp/admin/pcscfg.cfg

PCC-I-02106, Userid only used when SQLCHECK = FULL, userid ignored.
Semantic error at line 99, column 32, file bill_main.pc:
        EXEC SQL CONTEXT FREE :ctx;
...............................1
PCC-S-02322, found undefined identifier
Semantic error at line 99, column 32, file bill_main.pc:
        EXEC SQL CONTEXT FREE :ctx;
...............................1
PCC-S-02336, host variable expression has invalid type
Semantic error at line 99, column 32, file bill_main.pc:
        EXEC SQL CONTEXT FREE :ctx;
...............................1
PCC-S-02391, Runtime context variable not of correct type
make: *** [../src/obj/bill_main.o] Error 1
[oracle@billing src]$

代码是这样的,那位老大帮忙看看是什么问题,谢谢
(如果把EXEC SQL CONTEXT FREE :ctx; 去掉,编译可以通过,
但是却不能正常退出)

void
ReCloseDB( sql_context ctx )
{
       
        /*EXEC SQL INCLUDE sqlca;*/
        struct sqlca sqlca;
        EXEC SQL CONTEXT USE :ctx;
  
        EXEC SQL COMMIT  RELEASE;   
        EXEC SQL CONTEXT FREE :ctx;
        
    /*printf("free ctx sqlcode is %d",sqlca.sqlcode);
        WriteSCR("Logged off!\n");*/
       
        return;
}      
顶一下