人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

linuxのライブラリ&インストールに関する質問です。

まずprogram_aをソースからmake install時に、prefix=/usr/local/program_aとしてインストール完了しました。
次に、program_aのインストール先を/usr/local/program_commonに変更したいと思い、”make uninstallする前に”make install --prefix=/usr/local/program_commonし(てしまい)ました。

この後、program_aのライブラリを必要とするprogram_bをmakeしようとすると、古いライブラリのパスが認識され(/usr/local/program_a)、正しくインストールされません。

/usr/local/program_commonヘprogram_aをインストールするために必要な修復作業を教えてください。

program_aの/usr/local/program_commonへのインストール自体は成功するのでライブラリの依存関係?さえ解決できればいいのかな、と思います。
おそらくmake uninstallする前にmake installしたのが関係していると思います。また、ldconfigやlibtool等が関係するのではないかと考えています。

●質問者: koyachi
●カテゴリ:コンピュータ
✍キーワード:Linux make インストール ソース パス
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makeworld
●100ポイント

http://www.linuxworld.jp/etc/-/10768.html

LinuxWorld Online - 第13回 /etc/ld.so.conf

ファイル/etc/ld.so.confに/usr/local/program_aへのパスが残っていて、そこに対象のライブラリが存在すると、/usr/local/program_aのライブラリをリンクしてしまうと思います。


/etc/ld.so.confを修正後、/sbin/ldconfigを実行すれば解決するかもしれません。


autoconfが/etc/ld.so.confを見てるかもしれないので、program_bは./configureから再実行された方が良いと思います。

cd program_b

make distclean

./configure --prefix=/usr/local/program_common

make

make install

◎質問者からの返答

ld.so.cacheに残ってたのが原因だったようです。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ