将外部库包含到我自己的库项目 c++ visual studio

Including an external library to my own library project c++ visual studio

目前我有 3 个 visual studio 个项目:

这些项目都在同一个解决方案中。在 Logic 项目中,我使用了一个名为 curl 的外部库。我的逻辑项目是使用 visual studio 中的“新建项目”向导创建的静态库。该项目包含一个 pch.h 文件。我在我的逻辑项目属性中添加了以下内容:

  1. 设置C/C++ > General > Additional Include Directories为curl头文件所在的文件夹
  2. Libarian > General > Additional Library Directories 设置为包含 curl.lib 的文件夹。
  3. Libarian > General > Additional Dependencies 设置为 curl.lib。

现在,当我构建 Logic 项目时,输出是一个 Logic.lib 文件。我用 DUMPBIN /SYMBOLS /EXPORTS Logic.lib 检查了 Curl 函数是否确实在 lib 文件中,它们是。

为了将逻辑项目包含到控制台应用程序中,我执行了相同的 3 个步骤并将 Logic.lib 添加到控制台应用程序项目中。一切正常,直到我开始使用使用外部 curl 库的 类 的那一刻。当我使用这些 类 时,出现 link 错误:未解析的外部符号 (LNK 2019)。我已经尝试了很多来解决这个问题,但似乎我无法解决它。我是不是做错了什么导致它不起作用?

我还希望能够像在我的测试项目中的 ConsoleApplication 中一样使用我的逻辑项目。有关我拆分这些项目的更多背景信息,请参阅我之前的问题

经过几个小时的研究,我发现了这个 post 我认为这也适用于我的情况:Linking static libraries to other static libraries

TL;DR 静态库不 link 与其他静态库

所以我认为对我而言最好的解决方案是将静态逻辑库转换为动态库 (DLL)