调试一个tuxedo通过no-xa模式连接数据库的例子。
编译服务端程序,报错信息如下:
[oracle@informix ora]$ buildserver -o test -f test.c -f${ORACLE_HOME}/lib/libclntsh.so -s TEST
test.c: In function `TEST':
test.c:294: structure has no member named `sqlerrm'
test.c:295: structure has no member named `sqlerrm'
test.c:346: structure has no member named `sqlerrm'
test.c:347: structure has no member named `sqlerrm'
CMDTUX_CAT:1832: ERROR: can't execute cc -m32 -I$TUXDIR/include -o test BS-2557.c -L${TUXDIR}/lib test.c /u01/oracle/lib/libclntsh.so -ltux -lbuft -lfml -lfml32 -lengine -ldl -lpthread
【解决方法】
经过查找。原来是这个原因:
重命名下列文件,因为下列TUXEDO文件名与ORACLE带的文件名有冲突,所以要改名。
(1)TUXEDO安装路径include目录下的下面文件
把sqlca.h 改名为 sqlca.h.bbb
把sqlcode.h 改名为 sqlcode.h.bbb
把sqlda.h 改名为 sqlda.h.bbb
(2)重命名TUXEDO安装路径lib目录下的下面文件
把libsql.a 改名为 libsql.a.bbb
把libsql.so 改名为 libsql.so.bbb