【问题标题】:Why does Visual Studio show a warning for a reference in my .lib project?为什么 Visual Studio 对我的 .lib 项目中的引用显示警告?
【发布时间】:2020-10-21 06:06:41
【问题描述】:

我在 VS2019 中有一个包含多个项目的 C++ 解决方案。我刚刚添加了一个新的静态库项目,这个静态库需要使用另一个现有静态库项目中包含的一些功能。

当我右键单击这个新静态库下的引用,并添加对现有静态库的引用时,引用下的图标显示一个警告图标(带感叹号的黄色三角形)。

我查看了一些有关损坏引用的 Microsoft 文档:
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/ayds71se(v=vs.90)?redirectedfrom=MSDN

“损坏的引用”页面中的答案均不适用于我的情况,因为我正在使用向导创建引用并且它立即损坏了;我当然没有移动磁盘上的文件或类似的东西。

这里报告了一个类似的问题,没有明确的解决方案:
https://developercommunity.visualstudio.com/content/problem/632599/the-microsoftvisualstudioprojectsystemreferencesun.html

在我的解决方案中的其他项目中,对现有静态库的引用 工作时没有任何警告。我可以看到的主要区别是引用该库的项目是 MFC 应用程序,而不是静态库本身,但我不明白为什么静态库在引用另一个静态库时会有任何问题。

当我双击引用时,我收到一条弹出消息:

“Microsoft.VisualStudio.ProjectSystem.References.UnresolvedBuildDependencyProjectReference” 无法解析引用。

我在这里做错了什么?

【问题讨论】:

  • 添加引用对于 C# 来说是很有男子气概的。对于 C++,还有更多工作要做:stackoverflow.com/a/61350540/2805305 这能解决您的问题吗?
  • @bolov 如果仅适用于 C#,那么每个项目都存在“引用”下拉列表,这很奇怪。我不确定您附加的链接是指嵌套的静态库,还是只是如何将静态库链接到应用程序。无论如何,听起来我需要做的就是将我的包含库指向嵌套库中的头文件,它应该以这种方式编译。我认为“链接”可能是我正在做的事情的错误术语,因为我只是试图编译引用另一个静态库的包含静态库。
  • 在终端应用程序中使用库或在另一个库中使用库:相同的概念适用。

标签: c++ visual-studio


【解决方案1】:

根据此处的讨论,似乎无法使用“添加引用”链接静态库/需要一些解决方法:

Linking static libraries to other static libraries

我将寻找替代方法,而不是尝试从不同的静态库中引用静态库。

【讨论】:

  • 根据我对 Visual Studio 最新版本(VS 2015、2017 和 2019)的经验,您不希望在静态库项目中有任何引用。您只想在使用这些静态库的 dll 或 exe 中有一个完整的参考列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2022-01-01
  • 1970-01-01
相关资源
最近更新 更多