【问题标题】:libtool: convert/extract la to alibtool:将 la 转换/提取为 a
【发布时间】:2016-09-23 06:58:20
【问题描述】:

是否可以将文件从 .la 库转换或提取到 .a?

我有一个项目,我的应用程序与所有库静态链接,但其中一些是使用 libtool (.la libs) 生成的,而另一些是使用 gcc (.a lib) 创建的。在这个answer 中,有人说.libs 子目录中应该是.a libfile,但我发现那里只有.la、.so 和.o 文件,可能是因为lib 项目没有配置--enable -静态。

【问题讨论】:

    标签: gcc static-libraries libtool


    【解决方案1】:

    .libs 子目录中应该是 .a libfile,但我发现那里只有 .la、.so 和 .o 文件,可能是因为 lib 项目没有配置 --enable-static。

    这对我来说也是如此。您需要这样做才能获得.a 文件。您使用libtool 构建的库可能正在使用gcc 编译。

    是否可以将文件从 .la 库转换或提取为 .a?

    没有。 .la 文件中没有可提取到 .a 文件的目标代码。正如另一个答案的链接所说,它基本上是一个元数据文件,说明如何链接以及文件在哪里等。.la 文件是人类可读的,所以如果你真的想知道里面发生了什么,你可以检查它.

    【讨论】:

    • 如果 libtool 只是一个元数据文件,它可以在没有 .a 库的情况下进行链接,这意味着它必须与所有 .o 文件链接,不是吗?
    • 对于静态库,一个.a 文件只包含.o 文件(例如merging 两个.a 文件,显示提取步骤和创建步骤)。如该示例所示,在创建 .a 库时没有链接,只是存档。链接会在构建可执行文件时稍后发生。
    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2018-11-12
    • 1970-01-01
    • 2015-05-24
    • 2020-10-10
    相关资源
    最近更新 更多