我可以在自己的静态库项目中包含现有的静态库吗?
Posted
技术标签:
【中文标题】我可以在自己的静态库项目中包含现有的静态库吗?【英文标题】:Can I include an existing static library in my own static library project? 【发布时间】:2021-03-22 19:30:03 【问题描述】:我正在 Visual Studio 中创建一个供个人使用的静态库项目,我想将另一个现有的静态库包含到我自己的静态库中。 通常(对于可执行项目)我可以在项目的属性中设置额外的 include 和 lib 目录,但是这次菜单不同,我不知道要使用哪些设置。我该怎么做?
【问题讨论】:
【参考方案1】:您可以在静态库中包含静态库,但这通常会导致臃肿和其他问题。
最好的方法通常是使用#pragma
将链接库添加到您的“公共标头”中,以便自动链接:
#pragma comment(lib,"nameoflibIneed.lib")
【讨论】:
我还不完全熟悉所有的构建过程,所以我可能没有正确理解所有内容,也许我没有问正确的问题。我已将您建议的内容添加到我的库的标题中,但它仍然无法编译。智能感知也无法从现有库中找到任何类或方法。 您应该打开一个包含特定错误的新问题。此外,仅仅因为 IntelliSense 向您显示错误并不意味着它不会构建。【参考方案2】:我想出了一种让它发挥作用的 hacky 方法。 我只是像在普通项目中一样正常包含该库,然后才将项目类型更改为 .lib。 显然,即使项目配置页面中的相应菜单消失了,更改项目类型后也会保存其他依赖项。
【讨论】:
以上是关于我可以在自己的静态库项目中包含现有的静态库吗?的主要内容,如果未能解决你的问题,请参考以下文章
除了静态库之外,我还可以使用“gcc -llibnamehere”绑定共享库吗?
我可以在 Visual Studio 2008 中使用 Visual Studio 6 编译的 C++ 静态库吗?