我只是在做一些简单的 OCCI 事情,但是编译起来有点奇怪
环境:
- Oracle VM:Windows 8 64 位上的 Centos7 64 位
- gcc-c++.x86_64
- 只需双击 rpm 即可安装 Oracle XE(下载页面显示 linux 64bit)
echo $LD_LIBRARY_PATH 产生:
/usr/local/lib64/:/u01/app/oracle/product/11.2.0/xe/lib/
我也试过export LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/xe/lib/
让它产生
/u01/app/oracle/product/11.2.0/xe/lib/
一些列表命令:
find /u01/app/oracle/product/11.2.0/xe/lib/ -name lib*
产生以下结果:
/u01/app/oracle/product/11.2.0/xe/lib/
/u01/app/oracle/product/11.2.0/xe/lib/libagtsh.so.1.0
/u01/app/oracle/product/11.2.0/xe/lib/libcell11.so
/u01/app/oracle/product/11.2.0/xe/lib/libclntsh.so.11.1
/u01/app/oracle/product/11.2.0/xe/lib/libnnz11.so
/u01/app/oracle/product/11.2.0/xe/lib/libocci.so.11.1
/u01/app/oracle/product/11.2.0/xe/lib/libclntsh.so
/u01/app/oracle/product/11.2.0/xe/lib/libocci.so
/u01/app/oracle/product/11.2.0/xe/lib/libagtsh.so
and some others....
但是编译命令说 ld 找不到一些库:
g++ -o ab -I/u01/app/oracle/product/11.2.0/xe/rdbms/public/ -lnnz11 -lclntsh -locci a.cpp
/usr/bin/ld: cannot find -lnnz11
/usr/bin/ld: cannot find -lclntsh
/usr/bin/ld: cannot find -locci
collect2: error: ld returned 1 exit status
我已经尝试添加-L/u01/app/oracle/product/11.2.0/xe/lib/
,它成功编译但是运行程序会导致它在简单的行中静默崩溃/阻塞
Environment *env = Environment::createEnvironment();
没有发现异常。
有人知道我做错了什么吗?还是这两个问题相关?
顺便说一句,它曾经像 5 小时前一样工作,当它突然停止工作时,我重新安装了整个 VM,现在它仍然无法工作。