我正在维护一个构建“前端”库和多个“后端”库的库项目。该项目使用了包括 Libtool 在内的 Autotools 套件(我正在学习并发现我们的项目的实现需要维护)。作为共享库,这一切都很好。我们有一个使用该库的应用程序开发人员,并且更喜欢使用静态库构建,以便在多个平台上轻松分发软件(我不想讨论他的动机)。
他告诉我,之前他能够使用我们的构建系统构建一个大型静态库,但现在不能了。我无法准确追踪何时发生这种情况,但怀疑它可能与两个更改之一有关。第一个更改是删除捆绑的 libtool 源目录。第二个是将后端库放在 /usr/local/lib/project 中,而不是像以前一样将它们分散在 /usr/local/lib (默认位置)中。
我一直无法学习的是如何将前端库与后端组合到 /usr/local/lib 下的单个便利库中,并在 Autotools 框架中这样做。这似乎是可能的,但我还没有找到一个可以学习的例子。
顺便说一句,这些项目构建了几个实用程序作为我们测试套件的一部分。我使用 --disable-shared 选项运行配置,然后运行,实用程序静态链接到项目库。现在我的任务是让第三方应用程序可以使用这个功能。