gpt4 book ai didi

c++ - 我可以创建一个链接另一个库但不依赖于它的包含的 C++ 库吗?

转载 作者:行者123 更新时间:2023-11-28 05:43:33 26 4
gpt4 key购买 nike

我想创建一个链接 SFML 库和其他库的动态/静态库。我现在的问题是,在项目中取消我的库时,我必须确保 SFML includes 可用于该项目。
我能以某种方式消除对第三方 header 的这种依赖吗?
header-only 库怎么样?

其他库如何处理这个问题(当使用 SFML 时,我只需要它们的 header ,即使 SFML 依赖于其他库)

最佳答案

您将不得不重新组织您的头文件并重组您的代码。您将需要两组头文件:

  • 用于构建库的内部头文件,这些头文件包括并引用 SFML 的头文件、类和资源。

  • 构成库接口(interface)的公共(public)头文件。

您的图书馆只安装公共(public)集。公共(public)头文件不包含 SFML 头文件,并且它们不引用任何 SFML 类。

您的公共(public)头文件和类通常会声明但不会定义内部类和指向它们的指针。内部类仅在您自己的内部头文件中定义。

您应该花一些时间查看一些大型流行的 C++ 库中的头文件。您经常会发现未在公共(public)头文件中定义的内部类的指针和其他引用。它们是库使用的内部类,不公开。

甚至许多 C 库也是以这种方式构建的。

关于c++ - 我可以创建一个链接另一个库但不依赖于它的包含的 C++ 库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com