当谈到使用终端手动构建库时,不幸的是我没有太多经验,所以我有点卡在这里。
我已经下载了一个用于 objective-c 的库,它带有 makefile 等。
我可以看到该文件夹还包含一个名为“libtool”的可执行文件,我进行了一些搜索,我想这是我必须用来构建必要的 .a 文件的程序?不幸的是,我真的找不到任何似乎有效的有用文章。
库的文件夹包含一些.sh 文件、.pc 文件和一些.la 文件,但我是有点不确定我必须使用哪些作为 libtool 程序的输入以将它们编译成 .a 文件。
所以我的问题是,您必须将哪些文件输入到libtool 中才能将它们编译成必要的.a 文件?您具体使用什么命令来完成此操作?
谢谢大家的宝贵时间:)
最佳答案
首先简单介绍一下静态库:
Unix 环境(如 Mac OSX 和 Linux)中的静态库实际上只是由 ar
创建的目标文件的存档。命令行程序。
这就是 .a
扩展名的含义:存档。
要使用一些目标文件创建静态库,您可以使用如下命令:
ar crv libmy_library.a objectfile1.o objectfile2.o
至于您的实际问题,libtool
应该从 makefile 中自动调用,创建库,即以 .la
结尾的文件。然而,这不是真正的库,真正的库在一个隐藏目录中。您可以通过执行以下操作找到它
find . -name '*.a'
但正如我所说,makefile 应该 已经处理好所有事情,包括在您执行操作时将正确的库安装在正确的位置,例如安装
。
有关libtool
的信息,请参阅this site .
关于objective-c - 如何使用 libtool 在 Mac OS 上创建 .a 文件(静态库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315253/