実行中のLinuxのライブラリファイルが見つかりません

      コードの再利用性と保守性を向上させるためには、一般的にライブラリーの概念を導入するオペレーティング・システムは、ライブラリは、静的および動的ライブラリに分かれています。

      コンパイル時に静的ライブラリを静的に、実行時間は、もはやライブラリに依存しているプログラムにコンパイルされません。

      動的ライブラリは、シンボルテーブルは、プログラムにコンパイルされているが、動的ライブラリプログラム自体はどこへ行くのプログラムにコンパイルされていないので、ユーザプログラムが実行されている場合は、右の機能を実行するために動的ライブラリに依存しています。

      ユーザーが指定したディレクトリに動的ライブラリの.soファイルが見つからないプログラムを実行したとき、私は、根本的な原因のLinux Linuxのライブラリファイルを見つけることができません。

この問題は、多くのソリューションを提供しています。

  1. ライブラリディレクトリは、既存のシステムにライブラリをインストール:
    ライブラリへのシステムのデフォルトのパスは、/ libに/、/ lib32が/、などいくつかのファイル、見つけるために / lib64に/、libに/、lib32が/、libx86_64-のlinux-gnuの/を。一般的には/ usr / local / libと他のディレクトリが存在します。
    このアプローチは、グローバルな外観の特徴を持っている、欠点はその時々の悪いメンテナンスリポジトリです。その理由のバージョンは、システム全体の安定性に影響を与えることは容易であることが多いので、また、これらのディレクトリに推奨のライブラリをインストールしないでください。

  2. 検索パスを実行するためのプログラムを追加します。
    ライブラリを見つけることができない場合は、プログラムを実行する前に、最初はそれ以下の私の道を見つけるために、コンパイラに指示します。
    1)グローバルコンフィギュレーション.bashrcの通過:

    gedit ~/.bashrc
    #------------ 在末尾添加 -------------
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的库目录
    #------------ --------- -------------
    source ~/.bashrc
    
    1. ターミナルの設定
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/libs
    

    私は、直接プログラムに、あなたが同じコンピュータに移行する際に、別のコンピュータ上のデータベース環境を設定する必要はありません、特にプログラムの開発段階では、端末を設定するには、この方法をお勧めしますが、また、修正された方法と同様のシステムを使用して移植しやすいですコピーして、ライブラリを過ぎて実行するようにパスを追加することができます。

おすすめ

転載: blog.csdn.net/u012939880/article/details/95311259