安装Libtool时出现make install问题

14

我使用以下自动工具步骤来安装我的软件包:

./configure
make
make install prefix=/my/path

但我得到了以下的libtool警告 "libtool: warning: 记得要运行 'libtool --finish /usr/local/lib'' 和 "libtool: warning: 'lib/my.la' 未被安装在 '/usr/local/lib'" 当我使用autotool来安装我的软件包时。如果我改用下面的命令,问题就消失了:

./configure
make prefix=/my/path
make install prefix=/my/path

看起来第一个方法没有正确地将 prefix 替换为 libtool。我该如何避免这个问题?

1个回答

14

在描述库的libtool档案中记录的信息之一是预期的安装位置。这些信息在创建库时记录。您可以将其安装到不同的位置,但libtool会抱怨。通常,libtool的警告是无害的。

为了避免这样的警告,在构建时需要告诉libtool与安装时相同的安装位置。您在问题中介绍了一种方法,但如果使用标准的Autotools构建系统,则最好通过指定安装前缀来配置:

./configure --prefix=/my/path
make
make install

如果您要安装到临时区域(例如构建RPM),请在安装时使用 DESTDIR。这样做,libtool 仍会发出警告,但您将避免破坏其他内容。

./configure
make
make install DESTDIR=/staging/area

1
我遇到了一个警告,因为我有一个符号链接指向安装目录。尽管前缀和实际安装目录在解析符号链接后是相同的,但libtool认为它们是不同的目录,所以它打印了警告。我通过更改前缀来解决了这个问题。我之所以会遇到这个问题,是因为我有一个自定义的构建脚本,它使用$cwd并手动cd到不同的目录运行make,因为对于我正在构建的软件来说,这比使用make -j install快得多(> 30秒)。make -j install没有这个问题。 - mgarey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接