hiro99ma blog

linux: libtoolの警告

2025/08/30

自分のメモ libsecp256k1 を見ながら Raspberry Pi3 でビルドをしている。
いつもは /usr/local にインストールしていたのだが、pkgconfig でパスを指定する方法も覚えてきたので $HOME/.local にインストールすることにした。
LD_LIBRARY_PATH は他の設定より先に評価されるので、危険といえば危険である。 なので libsecp256k1 みたいな重要なライブラリは sudo しないと書き換えられないようなところに置いた方が安全だろう。

$ ./configure --prefix $HOME/.local --enable-module-recovery
$ make
$ make install
......
libtool: warning: remember to run 'libtool --finish /usr/local/lib'
.......

今までこんな警告は出てきてたっけ?
それにパスが $HOME/.local/lib ではないのも気になった。
確認しよう。

libtool

なんだかものすごく重たいというか開くまでに時間がかかったが、こちらが Libtool のページ。
中の遷移も時間がかかるので見てないけど。

インストールするという感じではなく、カレントディレクトリにファイルとして存在していた。
Makefilelibtool.m4 というのがあったので automake 関係で作られたとかだろう。

/bin/bash ./libtool   --mode=install /usr/bin/install -c   libsecp256k1.la '/home/xxx/.local/lib'

finish は操作するモードのことらしい。
2つ機能があり、1つは libtool ライブラリをインストールしてユーザが簡単に参照したりリンクできるようにする機能、 もう1つはクロスコンパイルされた libtool ライブラリをネイティブ環境に移植する際の作業を簡単にする機能だそうだ(gnu)。
.la とからしいが、そもそもそういうのがよくわからんな。

詳しくは、こちら。

「謎の拡張子 .laの正体」が役に立った。
libsecp256k1 を ls で見るとこうなっていて、.la もある。
中身はテキストファイルで、dlname='libsecp256k1.so.6'old_library='libsecp256k1.a' などがある。
static ライブラリ好きとしては “old” 扱いなのは悲しいが、指定しなかったら共有ライブラリが使われるくらいだし仕方ない。

libsecp256k1.a
libsecp256k1.la
libsecp256k1.so -> libsecp256k1.so.6.0.0
libsecp256k1.so.6 -> libsecp256k1.so.6.0.0
libsecp256k1.so.6.0.0

では、この警告は一体なんなんだ?という疑問だが、単に「思ってたのと違う」というだけっぽい。

libtool が automake とセットでよく使われるとなると、デフォルトで /usr/local を使うのに違うなんて、きー!、とか思ってしまうのかもしれない。

writer: hiro99ma
tags: Linux   C language  

 < Top page

コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage

About me