QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1759|回复: 15

[请教]没有办法加入Oracle的客户端动态链接库 !!!

[复制链接]
发表于 2004-5-18 14:58:35 | 显示全部楼层 |阅读模式
我在LINUX下用c编写了一个程序,后端需要连接一个ORACLE 数据库.
  数据库我已经手动建立起来了!
  我用proc编译后,生成了cy.c文件(cy是文件名),但是用$gcc –o cy cy.c $ORACLE_HOME/lib/libclntsh.so这个命令连接,准备生成可执行文件的时候,
  却出现了如下的错误:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-9
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o: In function `_start':
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o(.text+0x1: undefined reference to `main'
collect2: ld returned 1 exit status
是怎么回事呢?
  请大家指教!!
急等!
发表于 2004-5-18 23:14:50 | 显示全部楼层
没有这个函数start
回复

使用道具 举报

发表于 2004-5-20 21:44:26 | 显示全部楼层
试试
$gcc –o cy cy.c -L$ORACLE_HOME/lib -lclntsh
回复

使用道具 举报

发表于 2004-5-20 22:46:25 | 显示全部楼层
??没有main函数?
回复

使用道具 举报

 楼主| 发表于 2004-5-21 09:30:44 | 显示全部楼层
我试了gcc –o cy cy.c -L$ORACLE_HOME/lib -lclntsh ,
但是显示gcc: ¨Co.o: No such file or directory
还是不行呀!!
哎!真是着急。
编译的时候怎么地方不对吗?
回复

使用道具 举报

发表于 2004-5-21 11:17:56 | 显示全部楼层
gcc –o
gcc -o
回复

使用道具 举报

 楼主| 发表于 2004-5-21 12:39:24 | 显示全部楼层
gcc –o
gcc -o
还是不行!!还是那个错误呢!!!
就是
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-9
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o: In function `_start':
/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o(.text+0x1: undefined reference to `main'
collect2: ld returned 1 exit status
回复

使用道具 举报

发表于 2004-5-21 15:20:20 | 显示全部楼层
你的cy.c里不会是没有主函数main()吧?
回复

使用道具 举报

 楼主| 发表于 2004-5-21 15:42:00 | 显示全部楼层
当然有主函数了!
我觉得可能是proc的编译有问题!
再帮我想想办法吧!
回复

使用道具 举报

发表于 2004-5-21 20:27:34 | 显示全部楼层
换个编译器试试
回复

使用道具 举报

发表于 2004-5-21 20:28:04 | 显示全部楼层
错了,是换个版本的编译器
回复

使用道具 举报

 楼主| 发表于 2004-5-22 17:15:33 | 显示全部楼层
我还是不懂,你是说我的编译器偶问题吗?
回复

使用道具 举报

发表于 2004-5-22 22:59:28 | 显示全部楼层
用gcc3试试
回复

使用道具 举报

 楼主| 发表于 2004-5-23 10:11:07 | 显示全部楼层
谢谢 ,这次通过了!!
还有一个问题请教一下:
在和数据库建立连接的时候,比如说:
          strcpy(usr.arr,"cy");
                usr.len=(unsigned short)strlen((char *)usr.arr);
                strcpy(pass.arr,"cy");
                pass.len=(unsigned short)strlen((char *)pass.arr);
                strcpy(serv.arr,"oracle");
                serv.len=(unsigned short)strlen((char *)serv.arr);
下面这句是定义数据库名称的,有什么用吗?
是可以随便定义的吗?

strcpy(serv.arr,"oracle");
                serv.len=(unsigned short)strlen((char *)serv.arr);
回复

使用道具 举报

发表于 2004-5-23 10:48:21 | 显示全部楼层
我不懂数据库,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 06:29 , Processed in 0.044091 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表