5

当谈到使用终端手动构建库时,不幸的是我没有太多经验,我在这里有点卡住了。

我已经下载了一个带有makefile等的objective-c库。

我可以看到该文件夹​​还包含一个名为“libtool”的可执行文件,我进行了一些搜索,我想这是我必须用来构建必要的.a文件的程序?不幸的是,我真的找不到任何有用的文章似乎有效。

库的文件夹包含一些.sh文件、.pc文件和一些.la文件,但我有点不确定我必须使用哪些作为 libtool 程序的输入才能将它们编译成.a文件。

所以我的问题是您必须将哪些文件输入libtool才能将它们编译成必要的.a文件?您究竟使用什么命令来完成此任务?

谢谢大家的时间:)

4

1 回答 1

9

首先对静态库做一点介绍:

Unix 环境(如 Mac OSX 和 Linux)中的静态库实际上只是由ar命令行程序创建的目标文件的存档。

这就是.a扩展名的含义:存档。

要创建包含一些目标文件的静态库,您可以使用如下命令:

ar crv libmy_library.a objectfile1.o objectfile2.o

至于您的实际问题,libtool应该从makefile中自动调用,创建库,即以.结尾的文件.la。但是,这不是真正的库,真正的库在隐藏目录中。你可以通过做例如找到它

find . -name '*.a'

但是就像我说的那样,makefile应该已经处理了所有事情,包括在您执行时将正确的库安装在正确的位置,例如make install.

有关信息libtool,请参阅此站点

于 2012-09-07T09:29:56.443 回答