make install安装时的Libtool安装问题

Jes*_*Jes 10 makefile libtool

我使用以下autotool步骤来安装我的pacakges:

./configure
make
make install prefix=/my/path
Run Code Online (Sandbox Code Playgroud)

但是我收到了以下libtool警告" libtool:警告:记得运行'libtool --finish/usr/local/lib '和" libtool:warning:'lib/my.la'尚未安装在'/ usr/local/lib' "使用autotool安装我的软件包.如果我更改为以下命令,问题就会消失:

./configure
make prefix=/my/path
make install prefix=/my/path
Run Code Online (Sandbox Code Playgroud)

看起来第一种方法不能prefix正确地替换为libtool.我该如何避免这个问题?

Joh*_*ger 11

libtool存档记录有关它们描述的库的信息是预期的安装位置.创建库时会记录该信息.然后,您可以安装到其他位置,但libtool会抱怨.通常,libtool警告是无害的.

为了避免这种警告,您需要libtool在安装时告知构建时的相同安装位置.您在问题中提出了一种方法,但如果您使用的是标准的Autotools构建系统,那么最好将安装前缀指定为configure:

./configure --prefix=/my/path
make
make install
Run Code Online (Sandbox Code Playgroud)

或者,如果要安装到临时区域(例如构建RPM),则DESTDIR在安装时使用. libtool仍然会警告,但你会避免弄乱别的东西:

./configure
make
make install DESTDIR=/staging/area
Run Code Online (Sandbox Code Playgroud)