【问题标题】:How to make linking to a static library also link to its dependency as well?如何使链接到静态库也链接到它的依赖项?
【发布时间】:2019-01-08 09:08:30
【问题描述】:

我使用llvm-ar-7编写了一个名为libverify_passwd.a的静态库,它使用符号getpwuidgetspnamcrypt。它需要特殊的链接器参数-lcrypt-lc(如果指定了-nostdlib)。

我的另一个项目依赖于这个静态库,将-lcrypt添加到该项目的Makefile会很麻烦且难以维护。有没有什么办法可以在链接的时候自动解决依赖,或者有没有其他工具可以简化这个维护?

【问题讨论】:

  • 您可能会受益于使用 CMake 生成您的 make 文件。但一般来说,询问工具建议是题外话。
  • 静态库不是由链接器创建的。由于在创建静态库时不会发生任何链接,因此您无法将任何内容链接到静态库。阅读the Stackoverflow tag wiki about static-libraries
  • 将所需库的列表添加到库的文档中。您可以添加链接器命令行的示例。

标签: c build shared-libraries static-libraries


【解决方案1】:

查看How to merge two “ar” static libraries into one? 以创建一个包含您想要的新库

但最好的方法是在链接时继续使用-lcrypt

【讨论】:

    猜你喜欢
    • 2011-12-12
    • 2014-11-22
    • 1970-01-01
    • 2013-08-23
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多