C++ 使用sqlapi C+访问Oracle数据库+;

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)

我需要在几个数据库中写入一些数据。 我选择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路径,但都不起作用


谢谢您的帮助。

我认为您需要将变量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