c++ - Visual Studio 没有为静态库构建创建 .lib 文件
问题描述
视窗 10
Microsoft Visual Studio 社区 2019 版本 16.7.3
在我的解决方案中,有项目 A、B 和 C。A 和 B 的配置类型设置为Static Library (.lib)。A、B 和 C 都将其输出目录设置为$(SolutionDir)bin\builds$(Configuration)-$(Platform)$(ProjectName)\
输出文件是所有三个的默认$(OutDir)$(TargetName)$(TargetExt)。
C 的配置类型是Application (.exe)。它的附加包含目录设置为$(SolutionDir)A\src;$(SolutionDir)B\src
A 和 B 的 src 文件夹分别有 Ah 和 Bh 文件。
C 将其引用设置为具有 A 和 B。
当我(重新)构建 C 时,它成功构建了 A 和 B,但随后出现 LNK1104 错误,说它无法打开bin\builds\Debug-x64\A\A.lib的 lib 文件。它无法打开它的原因是因为该文件不存在。我清理解决方案并重建 A,它说它成功,但尽管如此,没有创建 .lib 文件。我使用文件资源管理器在解决方案中到处搜索,没有一个 .lib 文件。
任何帮助将不胜感激。
解决方案
我建议您可以参考 Microsoft Docs 关于lnk1104。
- 如果链接器尝试访问文件名时文件名尚不存在,您可能会看到此错误。当解决方案中的一个项目依赖于另一个项目,但项目以错误的顺序构建时,可能会发生这种情况。要解决此问题,请确保在使用该文件的项目中设置您的项目引用。然后在需要之前构建丢失的文件。
然后,您可以参考链接以获取有关Consuming libraries and components
.
如果您的静态库项目是在同一个解决方案中构建的:
- #include 使用引号的静态库的头文件。在典型的解决方案中,路径将以 . IntelliSense 将帮助您找到它。
../<library project name>
- 添加对静态库项目的引用。右键单击解决方案资源管理器中应用程序项目节点下的引用,然后选择
Add Reference
.
推荐阅读
- windows - 为什么我的 npm install 不能与我的项目一起使用?
- elasticsearch - org.elasticsearch 6.4.3 来自嵌套字段的查询值,无论其级别如何
- android - 为嵌套的 RecyclerViews 编写 Espresso UI 测试的正确方法是什么
- typescript - 使用 NX 将 typescript 代码编译成单个文件
- ansible - 在 Ansible 中读取 Windows 主机上的文件
- docker - luarocks install 返回一个非零代码:132(安装kong)
- javascript - 通过 JavaScript 向 Python 发送简单的 Ajax 请求
- apache - 从子网服务到互联网
- reactjs - 将单个 Switch 中的路由拆分为多个组件
- c# - EF Core 包含 Concat 字符串