一个很简单的pro*C程序!!!急

发布于 2022-06-26 08:49:56 字数 2923 浏览 510 评论 1

写了一个pro*C小程序,就是连接oracle数据库,预编译通过了(我使用了parse=none开关项),编译生成的.c文件时,出错了。???

程序如下:

  1. #include <stdio.h>;
  2. #include <string.h>;
  3. #include <stdlib.h>;
  4. #include <sqlca.h>;
  5. void sqlerror()
  6. {
  7.         printf("the data base error");
  8.         EXEC SQL ROLLBACK WORK RELEASE;
  9. }
  10. void main()
  11. {
  12.         EXEC SQL BEGIN DECLARE SECTION;
  13.                 char user[50];
  14.                 char pass[50];
  15.         EXEC SQL END DECLARE SECTION;
  16.         strcpy(user,"lucky");
  17.         strcpy(pass,"lucky");
  18.         EXEC SQL WHENEVER SQLERROR DO sqlerror();
  19.         EXEC SQL CONNECT :user IDENTIFIED BY :pass;
  20.         printf("connect already!:)");
  21.         EXEC SQL ROLLBACK WORK RELEASE;
  22. }

复制代码

错误如下:

  1. test.c:117: warning: type defaults to `int' in declaration of `sqlcxt'
  2. test.c:119: warning: type defaults to `int' in declaration of `sqlcx2t'
  3. test.c:121: warning: type defaults to `int' in declaration of `sqlbuft'
  4. test.c:122: warning: type defaults to `int' in declaration of `sqlgs2t'
  5. test.c:123: warning: type defaults to `int' in declaration of `sqlorat'
  6. test.c:172: warning: return type of `main' is not `int'
  7. test.c:114: warning: `sqlstm' defined but not used
  8. test.c:126: warning: `IAPSUCC' defined but not used
  9. test.c:127: warning: `IAPFAIL' defined but not used
  10. test.c:128: warning: `IAPFTL' defined but not used
  11. /tmp/ccGpDBvk.o(.text+0x65): In function `sqlerror':
  12. /opt/oracle/oui/test.c:162: undefined reference to `sqlca'
  13. /tmp/ccGpDBvk.o(.text+0x123): In function `main':
  14. /opt/oracle/oui/test.c:195: undefined reference to `sqlca'
  15. /tmp/ccGpDBvk.o(.text+0x2bb):/opt/oracle/oui/test.c:229: undefined reference to `sqlca'
  16. /tmp/ccGpDBvk.o(.text+0x323):/opt/oracle/oui/test.c:246: undefined reference to `sqlca'
  17. /tmp/ccGpDBvk.o(.text+0x357):/opt/oracle/oui/test.c:250: undefined reference to `sqlca'
  18. collect2: ld returned 1 exit status

复制代码

不知道为什么?
而且,我预编译时将parse去掉,就会有一大堆的错,好像是有关头文件(比如stdio,string等)的。我看了一些帖子,要装compat-egcs等安装包,但是,好像这些只是在redhat7。*的包,我的是redhat 9.0,安装盘里没有这些包,下载后,又不适合安装在9。0上,怎么办?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏已如深秋| 2022-06-28 18:29:05

顶一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文