C++ 使用sqlapi C+访问Oracle数据库+;
我需要在几个数据库中写入一些数据。 我选择sqlapi.com 我为mysql和mssql制作了它。 现在我遇到了Oracle数据库的问题 我已经在Ubuntu上安装了服务器和客户端。 在浏览器中它可以工作,但sqlapi说: libnnz10.so:无法打开共享对象 文件:没有这样的文件或目录 DBMS API库'libclntsh.so' 加载失败 该库是DBMS客户端的一部分 安装,而不是SQLAPI++ 确保安装了DBMS客户端并 此必需的库可用于 动载荷 Linux/Unix: 1) 用户目录中的目录 LD_库_路径环境变量 2) 缓存在中的库的列表 /etc/ld.so.cache 3) /usr/lib,后跟/lib 在/usr/lib中都有这两个文件depp。 我已经尝试了很多方法来表示这个文件夹的eclipse路径,但都不起作用C++ 使用sqlapi C+访问Oracle数据库+;,c++,sql,oracle,C++,Sql,Oracle,我需要在几个数据库中写入一些数据。 我选择sqlapi.com 我为mysql和mssql制作了它。 现在我遇到了Oracle数据库的问题 我已经在Ubuntu上安装了服务器和客户端。 在浏览器中它可以工作,但sqlapi说: libnnz10.so:无法打开共享对象 文件:没有这样的文件或目录 DBMS API库'libclntsh.so' 加载失败 该库是DBMS客户端的一部分 安装,而不是SQLAPI++ 确保安装了DBMS客户端并 此必需的库可用于 动载荷 Linux/Unix: 1)
谢谢您的帮助。我认为您需要将变量LD_LIBRARY_PATH设置为共享库的文件路径 e、 g 在.profile或.bash\u profile中设置变量。这取决于您使用的shell 更新 由于ubuntu中有一些新的安全要求(详情请参阅),您不能对非交互式shell使用LD_LIBRARY_PATH。使用以下步骤(根据需要调整oracle路径):
libclntsh.so
是访问oracle数据库的客户端库。所以基本上你是在问如何告诉eclipse从哪里获取给定的DLL,对吗?我不确定我是否理解,您是从eclipse还是从命令行启动程序?是的,可能和这条路有关。“echo LD_LIBRARY_PATH”什么都不给我。我试着用这个导出来改变它。“export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/”子目录/lib/中有这些*。所以文件不起作用:-/ha!当我将此导出添加到.profile时,重新启动后变量$LD_LIBRARY_PATH仍然为空,有东西重写了我的设置,实际上只有此变量。“无法在$HOME/.profile、/etc/profile或/etc/environment文件中设置LD_LIBRARY_路径。您必须使用/etc/LD.so.conf.d/*.conf配置文件。”是的,这就是原因,我昨天也发现了它。谢谢
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient/lib
echo "/opt/oracle/product/whatever/lib" | sudo tee /etc/ld.so.conf.d/oracle.conf
sudo ldconfig -v