occi 环境配置

qjzrd 2010-12-17 10:58:45
我在我的虚拟机上装了个linux 也装了 oracle9i

我现在在linux上写了个c++代码操作oracle数据库的,但是不会编译

我没有装oracle客户端, (要不要装oracle client呀)我怎么知道occi.h文件在哪呀

...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjzrd 2010-12-19
  • 打赏
  • 举报
回复
#g++ test.cpp -I/zrd/sdk/include -L/zrd/lib -locci -lclntsh -o 1

/usr/bin/ld: warning: libnnz11.so, needed by /zrd/lib/libclntsh.so, not found (try using -rpath or -rpath-link)


我检查了 libclntsh.so libnnz11.so 都在/zrd/lib/ 这个目录下 为啥还有这个错误
qjzrd 2010-12-18
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <occi.h>

using namespace oracle::occi;
using namespace std;

int main(int argc, char **argv)
{
Environment *env = Environment::createEnvironment(Environment::OBJECT);

Environment::terminateEnvironment(env);

cout << "hell0 occi" << endl;

return 0;
}

[root@CentOS45 zrd]# g++ 1.cpp -I/zrd/sdk/include -L/u01/oracle/lib -L/u01/oracle/rdbms/lib -locci -lclntsh -o 1
/tmp/ccETs1RZ.o(.text+0x1e): In function `main':
: undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*))'
/tmp/ccETs1RZ.o(.text+0x2f): In function `main':
: undefined reference to `oracle::occi::Environment::terminateEnvironment(oracle::occi::Environment*)'
collect2: ld returned 1 exit status
1)rpm格式包安装配置 1.1 下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序; oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus 的即时客户端; oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --补充包/文件,为运行ODBC环境附加库; oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm --补充JDBC下的XA、国际标准、行集操作; oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm --包含头文件和示例文件,为开发Oracle应用程序的即时客户端; 1.2 使用rpm -ivh [包名] 进行安装, 如:rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 安装的文件默认放在两个位置: 头文件:/usr/include/oracle/11.2/client64/ 下,如果在使用时报错找不到头文件,记得看路径是否是这个。 包文件:/usr/lib/oracle/11.2/client64/ 下,包含{bin、lib}两个文件夹; 1.3 创建文件夹: #mkdir -p /usr/lib/oracle/11.2/client64/network/admin/ 1.4 创建监听文件,并添加内容 #vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = *SID*) ) ) 1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS_LANG='simplified chinese_china'.ZHS16GBK export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH 1.6 使配置完的环境变量生效 #source ~/.bashrc

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧