免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5889 | 回复: 9
打印 上一主题 下一主题

在运行程序时找不到libdlntsh.so急急急急! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-14 21:54 |只看该作者 |倒序浏览
在linux下编译.cpp文件通过
[root@localhost chen]# g++ -o ex_oci9 ex_oci9.cpp -I/opt/ora9/product/9.2/rdbms/demo -I/opt/ora9/product/9.2/rdbms/public -L/opt/ora9/product/9.2/lib/ -lclntsh
但运行的时候报错
[root@localhost chen]# ./ex_oci9
./ex_oci9: error while loading shared libraries: libclntsh.so: cannot open shared object file: No such file or directory

我在$ORACLE_HOEM/lib下找到了libclntsh.so和libclntsh.so.9.0
不知道问题出在哪里,希望大家能够帮住我解决!谢谢!急急急急!

论坛徽章:
0
2 [报告]
发表于 2006-11-14 22:27 |只看该作者
现在不知道怎么编译又出问题了
[oracle@localhost chen]$ g++ -o ex_oci2 ex_oci9.cpp -I/opt/ora9/product/9.2/rdbms/demo -I/opt/ora9/product/9.2/rdbms/public -L /opt/ora9/product/9.2/lib/-lclntsh
/usr/bin/ld: cannot open output file ex_oci2: Permission denied
collect2: ld returned 1 exit status
到底问题出在哪里亚

论坛徽章:
0
3 [报告]
发表于 2006-11-14 22:56 |只看该作者
现在编译也不成功了
[root@localhost chen]# g++ -o ex_oci1 ex_oci9.cpp -I/opt/ora9/product/9.2/rdbms/demo -I/opt/ora9/product/9.2/rdbms/public -L/opt/ora9/product/9.2/lib/-lclntsh
/tmp/cckU2ltD.o: In function `otl_conn::session_end()':ex_oci9.cpp.text._ZN8otl_conn11session_endEv[otl_conn::session_end()]+0x4:对‘OCISessionEnd’未定义的 引用
/tmp/cckU2ltD.o: In function `otl_conn::server_detach()':ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0x33):对‘OCIServerDetach’ 未定义的引用
:ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0x5a):对‘OCIHandleFree’未定义的引用
:ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0x7a):对‘OCIHandleFree’未定义的引用
:ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0x9a):对‘OCIHandleFree’未定义的引用
:ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0xba):对‘OCIHandleFree’未定义的引用
:ex_oci9.cpp.text._ZN8otl_conn13server_detachEv[otl_conn::server_detach()]+0xda):对‘OCIHandleFree’未定义的引用
/tmp/cckU2ltD.o:ex_oci9.cpp.text._ZN8otl_conn6logoffEv[otl_conn::logoff()]+0x22): more undefined references to `OCIHandleFree' follow
/tmp/cckU2ltD.o: In function `otl_conn::error(otl_exc&':ex_oci9.cpp.text._ZN8otl_conn5errorER7otl_exc[otl_conn::error(otl_exc&]+0x3f):对‘OCIErrorGet’未定义的引用
/tmp/cckU2ltD.o: In function `otl_conn::initialize(int)':ex_oci9.cpp.text._ZN8otl_conn10initializeEi[otl_conn::initialize(int)]+0x43):对‘OCIInitialize’未定义的引用
/tmp/cckU2ltD.o: In function `otl_cur:pen(otl_conn&, otl_var*)':ex_oci9.cpp:(.text._ZN7otl_cur4openER8otl_connP7otl_var[otl_cur:pen(otl_conn&, otl_var*)]+0x7:对‘OCIHandleAlloc’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4openER8otl_connP7otl_var[otl_cur:pen(otl_conn&, otl_var*)]+0xcc):对‘OCIHandleAlloc’未定义的引用
/tmp/cckU2ltD.o: In function `otl_conn::server_attach(char const*)':ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x8c):对‘OCIEnvInit’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0xde):对‘OCIHandleAlloc’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x130):对‘OCIHandleAlloc’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x182):对‘OCIHandleAlloc’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x210):对‘OCIServerAttach’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x266):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x2d:对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x32e):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13server_attachEPKc[otl_conn::server_attach(char const*)]+0x37d):对‘OCIHandleAlloc’未定义的引用
/tmp/cckU2ltD.o: In function `otl_var::set_not_null(int, int)':ex_oci9.cpp:(.text._ZN7otl_var12set_not_nullEii[otl_var::set_not_null(int, int)]+0x9f):对‘OCIAttrSet’未定义的引用
/tmp/cckU2ltD.o: In function `otl_conn::session_begin(char const*, char const*, int, int)':ex_oci9.cpp:(.text._ZN8otl_conn13session_beginEPKcS1_ii[otl_conn::session_begin(char const*, char const*, int, int)]+0x74):对‘OCIAttrSet’未定义的引 用
:ex_oci9.cpp:(.text._ZN8otl_conn13session_beginEPKcS1_ii[otl_conn::session_begin(char const*, char const*, int, int)]+0xe0):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13session_beginEPKcS1_ii[otl_conn::session_begin(char const*, char const*, int, int)]+0x179):对‘OCISessionBegin’未定义的引用
:ex_oci9.cpp:(.text._ZN8otl_conn13session_beginEPKcS1_ii[otl_conn::session_begin(char const*, char const*, int, int)]+0x1d6):对‘OCIAttrSet’未定义的引用
/tmp/cckU2ltD.o: In function `otl_cur::error(otl_exc&':ex_oci9.cpp:(.text._ZN7otl_cur5errorER7otl_exc[otl_cur::error(otl_exc&]+0x55):对‘OCIErrorGet’未定义的 引用
/tmp/cckU2ltD.o: In function `otl_cur::bind(int, otl_var&, int, int, int)':ex_oci9.cpp:(.text._ZN7otl_cur4bindEiR7otl_variii[otl_cur::bind(int, otl_var&, int, int, int)]+0x100):对‘OCIDefineByPos’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEiR7otl_variii[otl_cur::bind(int, otl_var&, int, int, int)]+0x18a):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEiR7otl_variii[otl_cur::bind(int, otl_var&, int, int, int)]+0x1e:对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEiR7otl_variii[otl_cur::bind(int, otl_var&, int, int, int)]+0x29b):对‘OCIDefineByPos’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEiR7otl_variii[otl_cur::bind(int, otl_var&, int, int, int)]+0x302):对‘OCIAttrSet’未定义的引用
/tmp/cckU2ltD.o: In function `otl_cur::bind(char const*, otl_var&, int, int, int, int, int)':ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0xac):对‘OCIBindByName’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x209):对‘OCIBindByName’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x2cf):对‘OCIBindByName’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x35f):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x3bd):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x431):对‘OCIAttrSet’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x50d):对‘OCIBindByName’未定义的引用
:ex_oci9.cpp:(.text._ZN7otl_cur4bindEPKcR7otl_variiiii[otl_cur::bind(char const*, otl_var&, int, int, int, int, int)]+0x575):对‘O
collect2: ld 返回 1

论坛徽章:
0
4 [报告]
发表于 2006-11-14 22:59 |只看该作者
原帖由 xiaolittle 于 2006-11-14 22:27 发表
现在不知道怎么编译又出问题了
[oracle@localhost chen]$ g++ -o ex_oci2 ex_oci9.cpp -I/opt/ora9/product/9.2/rdbms/demo -I/opt/ora9/product/9.2/rdbms/public -L /opt/ora9/product/9.2/lib/-lclntsh
/usr ...

>>
>>
>>你第一次中的clntsh是在/opt/ora9/product/9.2/lib/里面吗?检查一下/etc/ld.so.conf是否有这个目录。
>>第二次好像写的有语法错误。
>>
>>你可以修改为:
>> g++ -o ex_oci2 ex_oci9.cpp /opt/ora9/product/9.2/lib/libclntsh.so \
>>-I/opt/ora9/product/9.2/rdbms/demo -I/opt/ora9/product/9.2/rdbms/public
>>试试看
>>
>>
>>

论坛徽章:
0
5 [报告]
发表于 2006-11-15 10:38 |只看该作者
谢谢,我检查过/etc/ld.so.conf这个目录下有那个路径,但就是一运行就说找不到libclntsh.so郁闷,还有其他的可能的错误吗?大家踊跃发言亚!

论坛徽章:
0
6 [报告]
发表于 2006-11-16 13:07 |只看该作者
我重新安装了10的客户端,编译通过后,执行时还是出现问题:
[root@chen otl]# ./ex_oci1
./ex_oci1: error while loading shared libraries: libclntsh.so.10.1: cannot open shared object file: No such file or directory
不知道到底是怎么回事,希望高手能指点一二

论坛徽章:
0
7 [报告]
发表于 2006-11-16 13:13 |只看该作者
我的oracle环境变量
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
libclntsh.so.10.1就在这个目录下,不知道运行的时候系统根据什么来找动态连接库,为什么会找不到!

论坛徽章:
0
8 [报告]
发表于 2006-11-16 20:56 |只看该作者

回复 7楼 xiaolittle 的帖子

你用root运行程序,看看root的环境变量里有没有设oracle动态连接库路径

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2006-11-16 20:57 |只看该作者
vi /etc/ld.so.conf 里面添加那个库的路径.然后执行ldconfig

论坛徽章:
0
10 [报告]
发表于 2006-11-17 09:45 |只看该作者
echo $LD_LIBRARY_PATH 看下路径里有没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP