在基于自动工具的项目中,我捆绑了另一个小型静态库,并以安全的方式将它链接到我的最终共享库中(静态是使用-fPIC等等)。最终应该没有任何内部静态库存在的证据作为构建过程的一部分,它的符号应该被“复制”到共享库中。静态链接libtool,不修改.la文件中的dependency_libs
最后一个条件肯定满足,使用nm
进行检查,并且在共享库上使用ldd
时,在静态库中没有显示“需要”的ELF段依赖关系。但libtool的.la
档案文件是不同的故事:在那里的dependency_libs
变量拿起一个-lmy-secret-temp-lib
(名称已被改变,以保护无辜)入口,然后打破任何基于libtool的项目,试图对最终的库建立,因为依赖关系可以永远不会被满足。非libtool项目当然没问题,因为除了libtool以外,其他文件都不在.la
中。
有没有一种方法可以告诉libtool在变量中包含变量时不向.la
文件中的dependency_libs
变量添加库?也许有一些像-flibtool_ignore -lmy-secret-lib -flibtool_payattention
之类的前后参数可以让开发人员告诉libtool停止阻碍吗?能够告诉autotools/libtool根本不制作/安装.la
文件会很好,但这似乎不是一种选择!
您可能想查看[libtool便利库](http://www.gnu.org/software/automake/manual/html_node/Libtool-Convenience-Libraries.html),因为它听起来与您所看到的非常相似正在做。 – ldav1s
@ ldav1s感谢您的建议,但我已经知道便利库 - 基本上我想要做的是使用非libtool静态库作为便利库,但无法找到一种方法来做到这一点... – andybuckley