JAVA怎么查找错误,如何调试错误“符号查找错误:未定义符号”

我创建了一个app(api_tests),它使用链接到oracle occi库(libocci.so.12.1)的库(libstorage.so)并编译它 . 当我运行这个应用程序时,我收到一个错误:

api_tests

api_tests: symbol lookup error: ./libstorage.so: undefined symbol: _ZN6oracle4occi11Environment17createEnvironmentENS1_4ModeEPvPFS3_S3_mEPFS3_S3_S3_mEPFvS3_S3_E

但是,此符号的库存在于当前目录中:

ls | grep libocci

libocci.so*

libocci.so.11.1*

libocci.so.12.1*

nm libocci.so.12.1 | grep _ZN6oracle4occi11Environment17createEnvironmentENS1_4ModeEPvPFS3_S3_mEPFS3_S3_S3_mEPFvS3_S3_E

0000000000097e70 T _ZN6oracle4occi11Environment17createEnvironmentENS1_4ModeEPvPFS3_S3_mEPFS3_S3_S3_mEPFvS3_S3_E

0000000000125014 r _ZN6oracle4occi11Environment17createEnvironmentENS1_4ModeEPvPFS3_S3_mEPFS3_S3_S3_mEPFvS3_S3_E$$LSDA

当前路径添加到LD_LABRARY_PATH:

echo $LD_LIBRARY_PATH

./:/usr/vacpp/bin/../lib:/lib

我想知道我的库有什么问题以及如何调试这个问题?

更新:看起来这个库没有链接(至少ldd没有显示这种依赖) . 我想这是makefile中的错误,它被编译但在运行时失效 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值