如何在 Visual Studio C++ 的 dll 项目中包含一个库

Posted

技术标签:

【中文标题】如何在 Visual Studio C++ 的 dll 项目中包含一个库【英文标题】:How to include a library in a dll project in visual studio c++ 【发布时间】:2020-04-18 19:02:14 【问题描述】:

所以我有一个项目(A),它编译成一个 dll 文件,然后我将这个 dll 包含在另一个项目(B)中。现在我想在该dll(A)中包含一个库,而不必将它也包含在另一个项目(B)中。我该怎么做?

【问题讨论】:

不清楚你的意思。您想将某个库静态链接到 A 而不是 B 吗?还是这是第三个 DLL? 基本上我希望该库包含在我的 dll 中 如果项目 A 不依赖于项目 B,则在将项目 A 中的 dll 与其他项目一起使用时,您不应该有依赖关系。 我有一个项目需要包含 glfw 然后编译成一个 dll,我希望能够在另一个项目中导入 dll 而不会给我 glfw3.h not found 错误。我希望这样更清楚 你不能那样导入它。如果你需要在其他项目中直接访问glfw,你需要直接包含它。如果您的 dll 没有在公共接口中公开 glfw 的任何内容(并且您的其他项目不想直接使用 glfw),那么您可以删除依赖项。 【参考方案1】:

您可以在项目 (A) DLL 中静态链接该库。通过这样做,库生成的二进制文件将包含在 DLL 的二进制文件中,project(B) 根本不会被修改(如果静态库的使用不会影响 DLL 本身的接口代码,即:项目包含的标题(B)。

【讨论】:

以上是关于如何在 Visual Studio C++ 的 dll 项目中包含一个库的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual Studio 2010中使用C++“准”标准库 Boost 1.44.0

如何在visual studio2008中创建,编译和运行C++程序,

如何只用visual c++编译器而不安装visual studio

如何只用visual c++编译器而不安装visual studio

Sprite::create(“file.png”) 在 Cocos2d-x C++ Visual Studio 上返回 null

visual studio 2019中C++安装opencv