0

私は C++ で Oracle のメソッドを書いています。IDE として Eclipse で OCI ライブラリを使用しています。コードは完全にコンパイルされましたが、次のランタイム エラーが発生します。

"error while loading shared libraries: libocci.so.11.1: cannot open shared object file: No such file or directory "

プロパティからocciとclntshとnnz11を含めました> c / c ++一般/パスとシンボル>ライブラリ

このエラーを修正する方法がわかりません、助けてくださいありがとう

4

3 に答える 3

1

IDEはlibocci.so.11.1のようにはなりません。libocci.soのように変換する必要があります。

ln -s libocci.so.11.1

その後、libocci.soに名前が変更されます

次に、コードをコンパイルします

于 2012-12-06T13:13:33.603 に答える
0

おお 。最後に、1つの変数でそれを実行し、.bashrcに入れました。

1-エクスポートLD_LIBRARY_PATH=/ opt / oracle/instantclient「ライブラリのパス」次に2-root@user:〜#vi.bashrc「ルートにいることを確認してください」3-LD_LIBRARY_PATH=/ opt / oracle / instanceclient / "この2行をファイルに追加します」exportLD_LIBRARY_PATH

:)

于 2012-08-05T10:52:05.107 に答える
0

プロジェクトがライブラリを探す場所を指定している可能性があるため (リンカー コマンド ラインの -L フラグ)、コンパイラがライブラリを検出します。ただし、実行時リンカーもライブラリを見つける必要があります。

Linuxで実行していると思います。次の 2 つのオプションがあります。

  1. 一時的な解決策は、環境で LD_LIBRARY_PATH= を定義することfull path to dir where libocci.so* is installedです。eclipseに詳しくないのですが、実行環境を変更する設定がありそうです。LD_LIBRARY_PATH を設定して、その環境で ecplise を実行することもできます。

    $ エクスポート LD_LIBRARY_PATH=...

    Eclipse を実行する $ コマンド

  2. 恒久的な解決策は、ディレクトリへのフル パスを追加することです。libs はファイル /etc/ld.so.conf にあります。ファイル /etc/ld.so.conf.d/oracle を作成し、そのファイルにパスを入れます。他には何もありません。次に、root として ldconfig を実行します。

于 2012-08-04T11:31:56.140 に答える