【问题标题】:Transitive Library Includes in Visual StudioVisual Studio 中包含的传递库
【发布时间】:2012-05-11 10:14:09
【问题描述】:

假设我有一个静态库 A,它使用静态库 B。然后假设我有一个可执行 C,它使用库 A 和 B 中的东西。

我应该让 C 显式链接与库 A 和 B,还是只链接库 A,因为 A 与 B 链接?

ps。我正在使用 Visual Studio 2008。

【问题讨论】:

    标签: c++ visual-studio dependencies


    【解决方案1】:

    C 必须同时与 A 和 B 链接,静态库无法“使用”另一个静态库。为 A 构建 .lib 文件时,它只包含对 B 的外部引用,不会引入 B 库中的实际代码。

    【讨论】:

    • 也许我不清楚。如果 A 是在 B 中链接的静态库怎么办?那么 B 的所有引用不都在 A 内部吗?
    • Visual Studio 中的 Link Library Dependencies 选项允许一个库包含来自另一个库的所有引用和定义。
    • 请注意,“链接库依赖项”仅影响链接器 (link.exe) 而不会影响图书管理员 (lib.exe)。打开此选项是在链接器/输入的“附加依赖项”选项中手动指定 .lib 文件的替代方法。
    • 如果库 B 设置为库 A 的依赖项(通过框架和参考,或“项目/项目依赖项...”),则任何依赖于库 A 的应用程序或 .DLL 项目(通过框架和参考,或“项目/项目依赖...”)将链接库 A 和库 B 的构建输出。您可以自己尝试,使用打开和关闭选项进行构建并注意生成的 .lib 文件是相同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2021-07-31
    • 2011-11-25
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多