救命啊!occi编译连接问题。。。
时间:2010-07-27
来源:互联网
环境:aix53、gcc4.2、oralce10g
编译一个简单的demo时报错
ld: 0711-317 ERROR: Undefined symbol: .oracle:cci::Environment::createEnvironment(oracle:cci::Environment::Mode, void*, void* (*)(void*, unsigned long), void* (*)(void*, void*, unsigned long), void (*)(void*, void*))
ld: 0711-317 ERROR: Undefined symbol: .oracle:cci::Environment::terminateEnvironment(oracle:cci::Environment*)
ld: 0711-317 ERROR: Undefined symbol: typeinfo for oracle:cci::SQLException
collect2: ld returned 8 exit status
考虑可能是occi库装的不全,从oracle官方网站下载了一个instantclient_11_2,解压安装后,引入编译还是同样的问题。。。
#include <iostream>
#include <occi.h>
using namespace std;
using namespace oracle:

int main()
{
Environment *env=Environment::createEnvironment();//初始化occi环境
//用户输入密码,名字,数据库
string name;
string pwd;
string dbname;
cout<<"请输入用户名,密码及数据库连接串";
cin>>name>>pwd>>dbname;
try
{
Connection *conn=env->createConnection(name,pwd,dbname);//创建到oracle的连接
cout<<"您已成功连接数据库!"<<endl;
env->terminateConnection(conn);//关闭连接
}
catch(SQLException e)
{
cout<<e.what()<<endl;//捕获错误
}
Environment::terminateEnvironment(env);//关闭环境
return 0;
}
作者: caicai15 发布时间: 2010-07-27
作者: rain_fish 发布时间: 2010-07-27
http://www.oracle.com/technology/tech/oci/occi/index.html
作者: ecjtubaowp 发布时间: 2010-07-27
作者: caicai15 发布时间: 2010-07-27
occi? 莫非是oci上面又封装了一层的东东???
instant client 的配置过程如下:
http://hi.baidu.com/mgqw/blog/item/9b36c1167592304d21a4e9e1.html
这个是OCI的入门
http://hi.baidu.com/mgqw/blog/item/9b36c1166407c14d20a4e99e.html
作者: mgqw 发布时间: 2010-07-27
occi? 莫非是oci上面又封装了一层的东东???
instant client 的配置过程如 ...
mgqw 发表于 2010-07-27 11:52
哥们儿,you奥特曼了。。。
作者: rain_fish 发布时间: 2010-07-27
我那会连oracle都是直接查询oci的底层函数, 然后自己根据应用封装的……
作者: mgqw 发布时间: 2010-07-27
rain_fish 发表于 2010-07-27 11:21
不行,我试过了。。
[email protected] : /asiainfo/wps/instantclient_10_2> ls
classes12.jar libnnz10.so libociei.so ojdbc14.jar ttt
libclntsh.a libocci.a libocijdbc10.so sdk
[email protected] : /asiainfo/wps/instantclient_10_2> nm -gA libocci.a > ttt
[email protected] : /asiainfo/wps/instantclient_10_2> grep createEnvironment ttt
[email protected] : /asiainfo/wps/instantclient_10_2> nm -gA libclntsh.a > ttt
[email protected] : /asiainfo/wps/instantclient_10_2> grep createEnvironment ttt
查看了引用的instantclient的库文件,确实找不到createEnvironment 。。。
不管是instantclienth还是企业版,都是这个问题。。。

作者: caicai15 发布时间: 2010-07-27
: /asiainfo/wps/instantclient_10_2> ls
classes12.jar libnnz10.so ...
caicai15 发表于 2010-07-27 11:57
仔细查查是什么原因,我就是这么做的,也没出现这样的错误。。。
另外,哥们儿是在亚信工作吧?
作者: rain_fish 发布时间: 2010-07-27
另外,哥们儿是在亚信工作吧?
rain_fish 发表于 2010-07-27 13:39
原来是同事哈,^_^。我感觉是g++编译器和occi库不兼容导致的,请问你那边用的是什么编译器?。。。
作者: caicai15 发布时间: 2010-07-27
作者: caicai15 发布时间: 2010-07-27
caicai15 发表于 2010-07-27 14:07
呵呵,不是同事,你的信息:[email protected] : /asiainfo/wps/instantclient_10_2> ls透漏的,呵呵应该不是g++编译器的问题,你仔细查查吧,
我的gcc 版本 4.1.2
作者: rain_fish 发布时间: 2010-07-27




作者: SpringfieldKing 发布时间: 2010-07-27
rain_fish 发表于 2010-07-27 14:41
呵呵,谢谢。我下载gcc4.1.2试试,环境变量设置有什么需要注意的吗?我只设置了ORACLE_HOME、PATH、LD_LIBRARY_PATH,库文件-locci -lclntsh 这两个应该是够了
作者: caicai15 发布时间: 2010-07-27
能成功链接数据库了再做下一步
作者: mgqw 发布时间: 2010-07-27
要是sqlplus链不上oracle的话, 其他程序就别想能链上去了。
作者: mgqw 发布时间: 2010-07-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28