【问题标题】:Windows static libraryWindows 静态库
【发布时间】:2023-03-18 07:49:01
【问题描述】:

我创建了一个静态库,我有 .lib 和标题。我的朋友尝试使用这个库,但是当他包含这个头文件时,他的编译器没有找到依赖项(其他库和头文件)。

是否可以在Visual Studio 2008 中创建一个不需要任何其他依赖项的静态库,只需编译器在这个signle lib 中添加所需的依赖项?

如果他不用安装winddk、wdk等就好了……

【问题讨论】:

    标签: visual-studio-2008 visual-c++ static-libraries


    【解决方案1】:

    是否可以在Visual Studio 2008 中创建一个不需要任何其他依赖项的静态库,只需编译器在此signle 库中添加所需的依赖项?

    是的 .. microsoft visual c 编译器不支持构建零依赖的 exe/lib
    零依赖 = 只需要系统库和 msvcrt.dll

    Mingw 确实支持在链接器选项中使用 -static
    将生成一个无依赖的构建需要 msvcrt.dll 运行时,它可以在任何系统上找到..
    至于 microsoft 的 Visual c 编译器,它将需要相同版本的 c 运行时,例如 msvcrt9p.dll ,...
    这迫使任何想要运行该应用程序的人下载开发中使用的相同版本的 .Net Runtime

    【讨论】:

      【解决方案2】:

      我认为您想在 .lib 文件中包含运行时库。

      1. 右键单击您的项目
      2. 转到配置属性 -> C/C++ -> 代码生成窗格
      3. 对于运行时库,选择多线程调试 (/MTd)

      对发布配置也重复步骤 1-3。

      .lib 文件的用户需要在他们的 .exe 中执行相同的操作。 您仍然需要分发 .lib 文件和 .h 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-22
        • 2012-03-15
        • 1970-01-01
        相关资源
        最近更新 更多