当谈到使用终端手动构建库时,我很遗憾没有太多经验,而且我在这里停留了一段时间。
我已经下载了一个带有makefile等的objective-c库。
我可以看到该文件夹还包含一个名为“libtool”的可执行文件,我做了一些搜索,我想这是我必须用来构建必要的 .a 文件的程序?不幸的是,我真的找不到任何有用的文章似乎有用。
该库的文件夹包含一些 .sh 文件, .pc 文件以及一些 .la 文件,但我是一个我不确定我必须使用哪些作为libtool程序的输入来将它们编译成 .a 文件。
所以我的问题是你需要输入哪些文件到 libtool 来将它们编译成必要的 .a 文件?你用什么命令来完成这个?
谢谢大家的时间:)
答案 0 :(得分:8)
首先介绍一下静态库:
Unix环境中的静态库(如Mac OSX和Linux)实际上只是ar
命令行程序创建的目标文件的存档。
这就是.a
扩展名代表的内容:存档。
要创建包含某些目标文件的静态库,您可以使用如下命令:
ar crv libmy_library.a objectfile1.o objectfile2.o
至于你的实际问题,应该从makefile自动调用libtool
,创建库,这是以.la
结尾的文件。但是,这不是真正的库,真正的库位于隐藏目录中。你可以通过这样的方式找到它。
find . -name '*.a'
但就像我说的那样,makefile 应该已经处理好所有事情,包括在你做的时候在正确的位置安装正确的库。 make install
。
有关libtool
的信息,请参阅this site。