Visual Studio 没有为静态库构建创建 .lib 文件

问题描述 投票:0回答:3

Windows 10

Microsoft Visual Studio 社区 2019 版本16.7.3

在我的解决方案中,有项目 A、B 和 C。A 和 B 的配置类型设置为 静态库 (.lib)。 A、B 和 C 的输出目录均设置为 $(SolutionDir)bin uilds$(Configuration)-$(Platform)$(ProjectName)\

输出文件是这三个文件的默认值 $(OutDir)$(TargetName)$(TargetExt)

C 的配置类型是 Application (.exe)。它的附加包含目录设置为 $(SolutionDir)A\src;$(SolutionDir)B\src

A和B的src文件夹分别有A.h和B.h文件。

C 将其引用设置为具有 A 和 B。

当我(重新)构建 C 时,它成功构建了 A 和 B,但随后收到 LNK1104 错误,指出它无法打开 bin uilds\Debug-x64\A\A.lib 的 lib 文件。无法打开它的原因是该文件不存在。我清理解决方案并重建 A,它说它成功了,但尽管如此,并未创建 .lib 文件。我使用文件资源管理器搜索了解决方案中的所有位置,但没有一个 .lib 文件。

任何帮助将不胜感激。

c++ visual-studio visual-studio-2019 static-libraries
3个回答
0
投票

我有同样的问题以及与你类似的项目结构。 这就是我所做的,问题已经解决...... 转到链接器 -> 常规 -> 使用库依赖项输入,然后选中


0
投票

我遇到了同样的问题,因为源文件的

Item Type
被错误地设置为
Does not participate in build

我通过以下步骤解决了问题。

  1. 右键单击解决方案资源管理器中的源文件之一
  2. 在弹出菜单中单击
    Properties
  3. 前往
    General
    ->
    Item Type
  4. Item Type
    更改为
    C/C++ compiler
    (对于 *.c 和 *.cpp)或
    C/C++ header
    (对于 *.h)

-1
投票

我建议你可以参考 Microsoft Docs 关于 lnk1104

  • 如果链接器时文件名尚不存在,您可能会看到此错误 尝试访问它。当一个项目依赖于另一个项目时可能会发生这种情况 在解决方案中,但项目构建的顺序错误。修理 这个问题,请确保您的项目引用已在项目中设置 使用该文件。然后丢失的文件在它之前被构建 必填。

然后,您可以参考链接了解更多关于

Consuming libraries and components
的信息。

如果您的静态库项目是在同一解决方案中构建的:

  1. #使用引号包含静态库的头文件。在典型的解决方案中,路径将以 开头。智能感知 会帮你找到它。
    ../<library project name> 
  2. 添加对静态库项目的引用。右键单击 解决方案资源管理器中应用程序项目节点下的引用 然后选择
    Add Reference
© www.soinside.com 2019 - 2024. All rights reserved.