【问题标题】:How to only offer one static lib in vs2013 to client if i have use several static lib from others? [closed]如果我使用了其他几个静态库,如何在 vs2013 中只向客户端提供一个静态库? [关闭]
【发布时间】:2015-10-26 02:34:58
【问题描述】:

我创建了一个静态库(以a.lib为例)文件供其他人使用我的API函数,但是我使用同事的其他API函数(这些API在b.lib,c.lib中实现, ...)。当我在一个只包含 a.lib 的新项目上进行测试时,我会得到一个错误,“unsolved external symbol...”。我想知道是否有一种方法只向使用我的 API 功能的用户提供 a.lib。所以其他的静态库文件(b.lib, c.lib, ...)就不需要再提供给用户了。

【问题讨论】:

    标签: c++ static-libraries .lib


    【解决方案1】:

    我认为您可以使用 Visual Studio 命令提示符将多个静态库组合为一个 *.lib。

    使用Lib 命令类似于lib /OUT:filename.lib input1.lib input2.lib ....

    这是参考页https://msdn.microsoft.com/en-us/library/7ykb2k5f.aspx

    这可能会有所帮助:Linking static libraries to other static libraries

    【讨论】:

    • 我已经阅读了您之前提供的参考页面中的文章。我没有清楚地描述这个问题。我遇到的情况有很大不同。用户只需要 a.lib,因为他们需要的所有 API 都在 a.lib 中实现。但是,a.lib 中的某些函数使用 b.lib 或其他静态库中的其他 API。如果用户只在项目文件中包含 a.lib,则会发生错误。
    • 所以您可以将a.libb.lib 组合为c.lib 并要求您使用c.lib
    • 非常感谢,这行得通。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2023-04-04
    • 2014-07-25
    • 1970-01-01
    • 2012-06-21
    相关资源
    最近更新 更多