【问题标题】:Libtool installation issue with make installmake install 的 Libtool 安装问题
【发布时间】:2015-12-22 08:48:34
【问题描述】:

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

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

但是我收到了以下 libtool 警告“libtool: warning: remember to run 'libtool --finish /usr/local/lib' 和“libtool: warning: 'lib/my使用自动工具安装我的软件包时,'/usr/local/lib'中没有安装.la'。如果我更改为以下命令,问题就消失了:

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

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

【问题讨论】:

    标签: makefile libtool


    【解决方案1】:

    libtool 档案记录的有关它们描述的库的信息中包括预期的安装位置。创建库时会记录该信息。然后您可以安装到不同的位置,但libtool 会抱怨。通常,libtool 的警告是无害的。

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

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

    或者,如果您要安装到暂存区域,例如构建 RPM,则在安装时使用 DESTDIRlibtool 仍然会发出警告,但你会避免搞砸其他任何事情:

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

    【讨论】:

    • 我有这个警告发生在我有一个安装目录的符号链接的地方。即使前缀和实际安装目录相同(在解析符号链接后),libtool 仍认为它们是不同的目录,因此打印了警告。我通过更改前缀来修复它。我之所以有这个,是因为我有一个自定义构建脚本,它使用 $cwd 并手动将 cd 放入不同的目录来运行 make,因为它比在我正在构建的软件上使用 make -j install 快得多(>30 秒)。 make -j install 没有这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2011-03-05
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多