/usr/lib64/libfreetype.so に freetype ライブラリのバージョン 1.4 をインストールし、/usr/local/lib/libfreetype.so に別のバージョンのライブラリをコンパイルしてインストールしたとします。プリタイプが必要なソフトウェアをビルドするとき、ビルドシステム(make)はどのバージョンを使用するかをどのように知ることができますか?
答え1
TL;DR バージョン: 状況によって異なります。
- オペレーティングシステム:ライブラリの検索に使用されるパスを登録するオペレーティングシステム固有の環境(
LD_LIBRARY_PATH
)設定ファイルまたはコマンド(例)があります。ldconfig(8)
- ビルドシステム:あり得る環境変数
LDFLAGS
システム(またはユーザー)がカスタムパスの下にncursesを持っている場合は、コマンドラインフラグまたは設定ファイルの設定などですmutt
。--with-curses=[dir]
これはビルドシステム(またはフレーバーmake
)によって異なり、autoconfファイルまたはcmakeファイルに手動で作成する必要があるかもしれません。 - ビルド後の設定:(
patchelf
利用可能な場合)などのツールを使用すると、別のライブラリを選択したり、検索パスを変更したりできます。
答え2
libxxx.so
通常、名前にバージョンを含む共有ライブラリファイルへのシンボリックリンク。
リンクを使用している場合は、-lxxx
このファイルを使用してください。libxxx.so
別のバージョンに接続するには、ライブラリの絶対パス名を指定する必要があります。