使用 `ar -rc` 和 libtool 有什么区别?

What is the difference between using `ar -rc` vs libtool?

我是 c 库的新手,我正在做一个不允许我使用的项目 libtool

我尝试在网上查找,但一切要么超级混乱,要么只是如何制作,却没有任何解释。

我有几个问题:

Q: Are .a libraries just a collection of .o files?

答:基本上是的。

目标文件需要以特定的方式组织 archive library format。链接器将无法使用存档 UNLESS 它识别该格式。因此需要像“ar”和“libtool”这样的工具。

Q: When the linker goes to link a library does it link the whole .a file or just the part it needs?*

A:只有实际需要的目标代码才会被物理添加到可执行映像中。

Q: What is the difference between using ar -rc vs libtool?

“ar”自 Unix 早期就已存在;早在“动态库”被发明(针对 *nix)之前,在 Linus Torvalds 想到 Linux 之前,或者在 Gnu 存在之前。 “libtool”是一个支持动态库和静态库的 Gnu 工具,具有许多超越基本“ar”功能的功能。